一. 成员
变量
1. 实例变量. 对象.xxx = xxx 实例变量 >> 字段 >>属性. 给对象用的
2. 类变量. 直接写在类中的变量就是类变量. 类变量一般用类名来访问. 对象中共性的属性提取出来.
1 # 实例 变量 2 # class Person: 3 # country = '中国' 4 # def __init__(self,name,age): 5 # self.name = name 6 # self.age = age 7 # Person.country = '大清' 8 # print(Person.country) #直接使用类名进行访问 9 # p1 = Person('alex',30) 10 # p1.country = '中国' #添加了一个实例变量 11 # print(p1.country) 12 13 # p2 = Person('wisir',145) 14 # print(p2.name) 15 # print(p2.country) 16 #类变量的修改只能通过类名来完成
方法
1. 实例方法. 对象.方法()
2. 类方法. 类名.方法()
3. 静态方法. 类名.方法()
1 # 实例 方法 2 # class Car: 3 # def run(self): 4 # print('会跑的车') 5 # def fei(self): 6 # print('会飞的车') 7 # def jump(self): 8 # print('you jump i jump') 9 # c = Car() 10 # c.fei()#调用实例方法 11 # c.jump() 12 # c.run() 13 # ----------------- 14 # 类方法 15 # class Lei(): 16 # def chi(self):#实例方法 17 # print('吃') 18 # 19 # @classmethod#类方法 20 # def he(cls): #cls类 21 # print(cls) 22 # print('类方法,he') 23 # 24 # print(Lei) 25 # Lei.he() 26 # p = Lei() 27 # 28 # p.chi() 29 # 30 # p.he() #不管用对象还是类去访问类方法,默认传递进去的是类 31 # ---------------------------- 32 # 静态方法. 类名.方法() 33 # class Stc(): 34 # @staticmethod 35 # def fei(): 36 # print('飞上天') 37 # Stc.fei()
属性@property
把方法转化成属性
对象.属性
1 # 属性 2 # class User: 3 # def __init__(self,name,birthday,qq,email): 4 # self.name = name 5 # self.birthday = birthday 6 # self.qq = qq 7 # self.email = email 8 # 9 # #方法 10 # @property 11 # def age(self):#可以把一个方法变成一个属性 12 # return 2018 - self.birthday 13 # u = User('小黑',2016,9898982,'@qq') 14 # print(u.age())
二. 私有
__作为前缀
在自己类中可以随意访问. 但是出了类任何人都不可以访问这个私有内容
1 #私有 2 class Person: 3 def __init__(self,name):#构造,创建对象的时候自动调用 4 self.__name = name #私有的 5 print('这里是构造方法') 6 def init(self): 7 print('实例方法') 8 def __chi(self): #私有的 9 print('我要吃,疯狂的吃') 10 def he(self): 11 self.__chi() #内部调用 12 print('我是喝',self.__name) 13 p = Person('周杰伦') 14 p.he() 15 ## p.__init__('周杰伦') 16 # p.init() 17 # print(p.__name) #'Person' object has no attribute '__name'