类方法使用

类方法,不和实例捆绑,只供类使用

cls代表类,可以访问类的数据和函数属性,不能访问实例的数据属性。

class xx:    
    tag=1
    @classmethod
    def aa(cls):
        print(cls.tag)
xx.aa()

类的静态属性

将函数定义成数据属性,可以访问对象的数据属性,也可以访问类的函数和数据属性

class xx:
    @property
    def a(x):
        return x*3

a = xx()
x.a    #不加括号

类静态方法:名义上归属类管理,不能使用类变量和实例变量,是类的工具包

实例只有数据属性,函数属性都从类中调用。

class xx:
    @staticmethod
    def abc(a,b,c):
        print(a,b,c)
xx.abc(a,b,c)    不实例化,通过类方法进行使用

子类调用父类的方法,使用super方法

class Vehicle:
    Country = 'China'
    def __init__(self,name,speed,load,power):
        self.name = name
        self.speed = speed
        self.load = load
        self.power = power
    def run(self):
        print("go go")

class Subway(Vehicle):
    def __init__(self,name,speed,load,power,line):
        super().__init__(name,speed,load,power)  # 同super(Subway,self).__init__(name,speed,load,power)
        self.line = line
    def show_info(self):
        print(self.name,self.speed,self.line)


line1 = Subway('一号线',200,'on','electricity','1haoxian')
line1.show_info()
原文地址:https://www.cnblogs.com/chrrydot/p/9819758.html