类方法和静态方法
一、类方法
- 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
- cls和 self类似
class Demo(object): __num = 10 @classmethod def get_num(cls): return cls.__num func = Demo() print(func.get_num())
二、静态方法
当⽅法中既不需要使⽤实例对象(如实例对象,实例属性),也不需要使⽤类对象 (如类属性、类⽅法、创建实例等)时,定义静态⽅法。
静态方法需要⽤装饰器 @@staticmethod 来标识。
静态方法参数随意,没有“self”和“cls”参数,但是方法体中不能使用实例的任何属性和方法。
class Demo(): __name = 'tom' def __init__(self, age): self.age = age @staticmethod def sfucn(): print('静态方法~~~') print(f'静态方法-类属性:{Demo.__name}') # print(f'静态方法-实例属性:{self.age}') 本行代码会报错 d = Demo(18) d.sfucn() # 静态方法~~~ # 静态方法-类属性:tom Demo.sfucn() # 静态方法~~~ # 静态方法-类属性:tom
浙公网安备 33010602011771号