一.类属性
- 类属性,就是所有的对象所共有的属性,在对其修改够,所有对象的类属性放生了改变
- 实例属性,每个对象所独有的,对象被创建后,添加修改实例属性,对其他对象不产生影响
-读取方式:- 对象.类属性名
- 类名.类属性名
- 修改方式:
- 类名.类属性名 = 值
class Chinese(object): color = 'yellow' c1 = Chinese() c2 = Chinese() print(c1.color) # yellow print(c2.color) # yellow print(Chinese.color) # yellow Chinese.color = 'orange' print(c1.color) # orange print(c2.color) # orange print(Chinese.color) # orange
二.类方法
-
如果在方法内部不需要使用实例属性和实例方法,但是需要使用类属性或者类方法我们就定义类方法
-
定义方式:需要在方法上方写@classmethod
-
在类方法中会自动传入cls,这个参数代表的是当前类本身
class Apple: apple_num = 10 def eat_apple(self): Apple.apple_num -= 1 @classmethod def print_num(cls): print(cls.apple_num) a = Apple() Apple.print_num() # 10 a.eat_apple() a.eat_apple() Apple.print_num() # 8
三.静态方法
-
既不依赖于实例,也不依赖于类,这种方法我们就可以定义为静态方法
class Apple: @staticmethod def func(): print("我是一个静态方法") A = Apple() A.func() # 我是一个静态方法