三分钟透彻理解Python中的@staticmethod和@classmethod
在Python中,@staticmethod
和 @classmethod
是装饰器,用于修饰类中的方法,使得方法具有特定的用途。
@staticmethod
装饰器会使得该方法成为一个静态方法,它不接收特定的self
或cls
参数,即它是一个与类或其实例无关的普通函数,只是把它放在了类的命名空间里。@classmethod
装饰器会使得该方法成为一个类方法,它接收cls
参数(代表类本身),但不接收self
(代表实例)。类方法允许在不创建类的实例的情况下调用。
下面是两者的简单示例:
class MyClass:
@staticmethod
def static_method():
print("This is a static method.")
@classmethod
def class_method(cls):
print("This is a class method.")
# 调用静态方法
MyClass.static_method()
# 调用类方法
MyClass.class_method()
在这个例子中,static_method
不需要访问实例或类变量,所以我们使用了 @staticmethod
。而 class_method
需要访问类变量,所以我们使用了 @classmethod
。
评论已关闭