python 成员
一.成员
1.实例变量 对象.属性=xxxx
1 class Person: 2 def __init__(self,name,id,gender,birth): 3 self.name = name 4 self.id = id 5 self.gender = gender 6 self.birth = birth 7 8 p = Person('哈哈','10086','不详','1990-12-15') 9 print(p.birth) #p.birth就是实例变量
2.类变量 最好用类.变量 ,对象.变量也能用
1 class Person: 2 3 country = '大清' 类变量 4 5 def __init__(self,name,gender): 6 self.name = name 7 self.gender = gender 8 9 r = Person('张三','男') 10 r1 = Person('李四', '女') 11 12 print(r.name) 13 print(r.gender) 14 print(r.country) 对象.类变量 15 print(Person.country) 类.类变量
3.实例方法
1 class Computer: 2 3 # 实例方法 4 def play(self): 5 print('电脑可以扫雷') 6 7 # 在定义实例方法的时候. 必须给出一个参数self 8 # 形参的第一个参数, 自动的把对象给传递进来 9 def work(self): 10 # print(self) 11 print('电脑用来工作') 12 13 c = Computer() 14 c.work() # 调用的时候不需要手动给出self
4.类方法
1 class Preson: 2 3 # 实例方法 4 def chi(self): 5 print('人会吃') 6 @classmethod # 装饰器. 此时这个方法是一个类方法 7 def he(cls): # 此时接受到的cls是类名 8 print('人会喝') 9 10 11 # 用对象访问 12 p = Preson() 13 p.he() # 在调用类方法的时候. 默认的把类名传递给类方法 14 15 # 类方法一般用类名去访问 16 Preson.he()
5.静态方法
1 class Person: 2 3 @staticmethod 4 def yue(): 5 print('看见我就是静态方法') 6 7 8 # 静态方法可以使用对象访问. 也可以使用类名访问. 但是一般推荐使用类名访问 9 p = Person() 10 p.yue() 11 12 # 推荐使用类名访问 13 Person.yue()
6.属性
1 class Preson: 2 def __init__(self,name,gender,birth): 3 self.name = name 4 self.gender = gender 5 self.birth = birth 6 7 # 年龄 -> 应该是算出来的. 而不是直接存储的 8 @property # 把一个方法更改成一个属性, 每次拿属性的时候会自动的去执行这个风法 9 # 方法的返回值就是属性值 10 def age(self): 11 return 2018-self.birth 12 13 p1 = Preson('wusir','未知',2000) 14 print(p1.age) # 看着像一个变量一样使用. 实际上这里是调用的一个方法 15 print(p1.age) 16 17 # p1.age = 26 # 不可以赋值, 因为age是一个方法不是变量 方法不能进行赋值操作
7.私有
1 class Person: 2 3 _qie = '潘潘' # 类变量 4 5 def __init__(self,name,mini): 6 self.name = name 7 self._mini =mini # 私有内容 实例变量 8 9 def gaosu(self): 10 print(f"把秘密告诉了太白, 第二天所有人都知道了{self._mini}") 11 # print(Person.__qie) # 私有的类变量只能在类中调用 12 13 def __yue(self): # 私有的实例方法 14 print('我要和宝宝约') 15 16 17 p = Person('wusir','和嫂子的故事') 18 # print(p.__mimi) # 私有的内容只能在类里面调用 19 p.gaosu()