Python面向对象(成员)(二)
1. 成员
在类中你能写的所有内容都是类的成员
2. 变量
1. 实例变量: 由对象去访问的变量.
class Person:
def __init__(self, name, id, gender, birth):
self.name = name # 实例变量 对象里的变量
self.id = id
self.gender = gender
self.birth = birth
2. 类变量. 此时. 这个变量属于类. 但是对象也可以访问.
class Person:
country = "大清" # 类变量
def __init__(self, name, gender):
self.name = name
self.gender = gender
3. 方法
1. 实例方法: 使用 对象.方法()
特点: 在声明的时候. 需要给出self, self必须放在第一个位置
在调用的时候. 自动的会把对象传递给形参的self
class Computer:
def play(self): # 实例方法
print("电脑可以扫雷")
def work(self): # 实例方法
print("电脑用来工作")
2. 类方法(@classmethod): 类方法是属于类的.
特点:在声明的时候需要给出一个能够接受类名的参数, cls , 也必须放在参数的第一个
在调用的时候. 自动得把xx对象的类传递给cls
class Person:
@classmethod # 装饰器, 此时这个方法是一个类方法
def he(cls):
print("人能喝")
3. 静态方法(@staticmethod): 静态方法也是属于类的. 静态方法就好比. 我们在类中定义了一个函数
静态方法一般和类方法差不多. 使用类名去访问
class Person:
@staticmethod # 静态方法
def yue():
print("fsadf")
4. 属性
在方法上添加一个@property. 可以把一个方法变成一个属性.
但是这个属性不可以被赋值
当我们某一个属性必须经过计算才能得到结果的时候.
class Person:
def __init__(self, name, gender, birth):
self.name = name
self.gender = gender
self.birth = birth @property # 把一个方法更改成一个属性, 每次拿属性的时候都会自动的去执行这个方法,方法的返回值就是属性值
def age(self): # 实例方法
return 2018 - self.birth
5. 私有
所有以双下划线开头的方法, 变量都是私有内容. 外界无法访问. 除非你主动暴露这些内容
class Person:
__qie = "潘潘" # 类变量 外部不能调 内部能调
def __init__(self, name, mimi):
self.name = name
self.__mimi = mimi # 私有内容 实例变量 外部不能调 内部能调
def gaosu(self):
print(f"把秘密告诉了同事, 第二天所有人都知道了{self.__mimi}")
print(Person.__qie) # 私有的类变量只能在类中调用
def __yue(self): # 私有的实例方法 外部不能调 内部能调
print("我要和宝宝约")
Python面向对象(成员)(二)的更多相关文章
- python - 面向对象(二)
类的三大特性 类的三大特性包括: 封装.继承.多态 一.封装 封装就是将类所用到的所有字段.属性.方法都包含在类代码段里面,当实例调用直接调用类中的方法即可. class People(object) ...
- #3 Python面向对象(二)
前言 上一节主要记录面向对象编程的思想以及Python类的简单创建,这节继续深入类中变量的相关知识,Here we go! Python中类的各种变量 1.1 类变量 类变量定义:在类中,在函数体(方 ...
- 初学Python——面向对象(二)
一.抽象类.接口类和抽象接口 转自博客园魏恒https://www.cnblogs.com/weihengblog/p/8528967.html (一)接口类 什么是接口类?在继承中,我们可以声明某个 ...
- python面向对象(二)之封装
封装定义: 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用. 即"封装"就是将抽象得到的数 ...
- Python学习:15.Python面向对象(二、继承的各种情况)
一.什么是继承 继承是一种创建类的方法,在python中,一个类可以继承来自一个或多个父.原始类称为基类或超类. #创建父类 class Parent1: pass class Parent2: pa ...
- Python 面向对象进阶(二)
1. 垃圾回收 小整数对象池 Python对小整数的定义是 [-5, 257),这些整数对象是提前建立好的; 在一个Python程序中,所有位于这个范围内的整数,使用的都是同一个对象; 单个字符共用对 ...
- python 面向对象(成员,静态,类)的(变量,方法)区别
静态方法是使用@staticmethod装饰的方法,并且参数表中不需要self或者cls,可以访问类成员变量 默认的方法是有self的,是成员方法,可以访问私有变量和方法(通过self.xxx),或者 ...
- python 面向对象十二 元类
一.类也是对象 只要使用关键字class,Python解释器在执行的时候就会创建一个对象.下面的代码段: class ObjectCreator(object): pass 将在内存中创建一个对象,名 ...
- python -- 面向对象-成员
1.成员 在类中,你能写的所有内容都是类的成员 2.变量 1.实例变量:由对象去访问的变量,一般使用是 对象 . 属性 class Person: def __in ...
随机推荐
- NFX UNISTACK 介绍
学习.NET Core和ASP.NET Core,偶然搜索到NFX UNISTACK,现翻译一下Readme,工程/原文:https://github.com/aumcode/nfx NFX Serv ...
- 使用nvmw解决windows下多版本node共存的问题
不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 ===========不要再看的分割线============ ...
- WCF中的AsyncPattern
WCF中的AsyncPattern (系列博文源自 http://pfelix.wordpress.com/,由笔者翻译并整理,转载请注明) 在wcf 的 service contract中, 服 ...
- ES-Mac OS环境搭建-kibana
简介 Kibana是一个为ElasticSearch 提供的数据分析的 Web 接口.可使用它对日志进行高效的搜索.可视化.分析等各种操作. 下载 打开elasticseach官网,单击downloa ...
- Fragment(一)--Fragment用法常见问题
fragment notes fragment相关内容包括 基本定义与使用 回退栈内部实现 fragment通信(与activity 与fragment) DialogFragment VP + Fr ...
- uvm_marcos——UVM宏定义
I programmed all night.Through the window, on my screen,The rising sun shined. 编程一整夜,透过窗户,照在屏幕上.初升的太 ...
- Azure 项目构建 - 用 Azure 认知服务在微信公众号上搭建智能会务系统
通过完整流程详细介绍了如何在Azure平台上快速搭建基于微信公众号的智慧云会务管理系统. 此系列的全部课程 https://school.azure.cn/curriculums/11 立即访问htt ...
- sql server 2008怎么设置不允许windows身份验证
- C# 一维数组 冒泡排序
假设有个三个杯子 一个杯子中有一个紫色的乒乓球 一个没有 一个有红色乒乓球 杯子不能动 怎么把紫色和红色的调换呢 主要是先把紫色的放到空的杯子 在把红的放到紫色原来的杯子 再把 ...
- POJ 1741 Tree (树的分治,树的重心)
题意:给一棵树,n个节点,给定一个数k,求任意满足dist(a,b)<=k的点对的数量. 思路: 这道题的思路比较简单,但是细节很多. 此题可以用分治法,如何分治? (1)如果path(a,b) ...