205-类属性、类方法、静态方法
类属性
(之前学的属性:对象属性、实例属性、成员属性:每一个实例化对象都拥有属性)
类属性并不是某个对象所特有的,而是所有对象所共同拥有或一起组成的属性:
应用栗子:init里实现对象累加计数 调用类属性
class Person():
count = 0
类属性的访问:
类名.属性
对象名.属性
类属性也可以被继承
类方法
装饰器:@classmethod 调用类方法 类方法就是为了操作类属性
作用:专门用于实现对类属性的调用
class Person():
@classmethod # 第一步添加装饰器
def 类方法(cls): # cls代表类本身
调用:
类名.方法()
对象名.方法()
静态方法
作用:如果某个方法既不需要调用自身属性也不需要调用自身方法,就可以把其封装为静态方法,静态方法本身没有参数
@staticmethod # 第一步添加装饰器
def 静态方法():
什么情况用静态方法
(例如程序菜单)
@staticmethod
怎么调用
语法糖修饰符
固定参数 cls
class A(object):
count = 0
@classmethod #语法糖修饰符
def fun1(cls): # 固定参数 cls
print(A.count)
@staticmethod #语法糖修饰符
def fun2(): # 无参数
print('这是菜单')
def __init__(self):
count += 1