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("汪汪汪")

  值得注意的是:静态方法的括号中没有参数,因为它不需要调用任何东西。

原文地址:https://www.cnblogs.com/Scorpicat/p/11720283.html