一.成员

1.实例变量 对象.属性=xxxx

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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()

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄