类方法,不和实例捆绑,只供类使用
cls代表类,可以访问类的数据和函数属性,不能访问实例的数据属性。
class xx: tag=1 @classmethod def aa(cls): print(cls.tag)xx.aa()
类的静态属性
将函数定义成数据属性,可以访问对象的数据属性,也可以访问类的函数和数据属性
class xx: @property def a(x): return x*3a = 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()