python @staticmethod装饰器
@staticmethod
是一个装饰器,用于声明一个静态方法。静态方法是一个属于类而不是属于实例的方法,可以直接通过类名调用,而不需要创建实例。
静态方法与普通方法的区别在于,它没有访问实例属性的权限,因为它不会接收self
或其他实例参数。在静态方法内部,只能访问类属性或其他静态方法。
下面是一个示例:
class MathUtils:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def subtract(a, b):
return a - b
print(MathUtils.add(2, 3)) # 输出 5
print(MathUtils.subtract(7, 5)) # 输出 2
值得注意的是,@staticmethod
可以被@classmethod
替代。@classmethod
也是一个装饰器,用于声明一个类方法,类方法与静态方法类似,但是它可以接收一个指向类的参数cls
,并可以用来访问类属性或调用其他类方法。