08 类属性、类方法、静态方法
1 类属性
1.1 类属性的定义
类属性即定义在类中的属性。类是一个特殊的对象。定义方法为:在类中使用直接使用赋值语句定义:
1.2 类属性的调用
使用 类名.类属性名 的方式调用它,可以在任意地方使用此方法调用一个类的类属性。
1.3 子类调用父类中的类属性
子类实例可以直接调用父类中的类属性:子类实例.父类属性
也可以使用:类名.类属性(或cls.类属性(cls表示class,self表示对象))的方式,在任意地方调用任意类的类属性
class Human: count = 0 # 类属性的定义 def __init__(self,name): self.name = name Human.count+=1 # 类属性的调用 xiaoming = Human("小明") xiaohua = Human("小花") print("创建了%d个对象"% xiaoming.count) # 子类实例调用父类属性
2 类方法
2.1 类方法的定义
类方法用:@classmethod来标记,此标记下的第一个方法即类方法
2.2 类方法的调用
类方法使用:类名.类方法名 来调用
class Human:
count = 0
def __init__(self,name):
self.name = name
Human.count+=1
@classmethod # 类方法的定义
def show_count(cls):
print("创建了%d个实例"%cls.count)
xiaoming = Human("小明")
xiaohua = Human("小花")
Human.show_count() #类方法的调用
3 静态方法
3.1 静态方法的概念
在类中,如果一个方法:既不调用实例属性和实例方法,也不需要调用类属性和类方法。就可以考虑把这个方法定义为静态方法。
3.2 静态方法的定义
使用:@staticmethod 来声明下面的第一个方法为静态方法。
class Dog: @staticmethod def bark(): print("汪汪汪")
值得注意的是:静态方法的括号中没有参数,因为它不需要调用任何东西。