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