Python 类方法vs函数
我对类方法有点困惑: 考虑下面的例子Python 类方法vs函数,python,python-3.x,class,Python,Python 3.x,Class,我对类方法有点困惑: 考虑下面的例子 class A: number = 0 def add_int_n(n: int) -> int: return A.number + n @classmethod def add_int_m(cls, m: int) -> int: return cls.number + m @staticmethod def add_int_k(cls, k: int) -
class A:
number = 0
def add_int_n(n: int) -> int:
return A.number + n
@classmethod
def add_int_m(cls, m: int) -> int:
return cls.number + m
@staticmethod
def add_int_k(cls, k: int) -> int:
return cls.number + k
我注意到前一个和最后一个是类
函数
,而第二个是类方法
。两者(如果有的话)的根本区别是什么?查看此视频:我认为您可以很容易地理解差异。@gst感谢您为我指出答案。当使用方法或函数时,您有什么最佳实践吗?如果您确实需要访问类的实例,请使用实例方法。如果没有,使用静态方法(尽管你应该考虑是否在类外使用正则函数;静态方法真的只是一个函数,它存在于类的命名空间中)。类方法用作替代构造函数;如果A.foo
是类方法,那么A(…)
和A.foo(…)
都应该返回A
的实例。