我正在学习类方法。 我看过这个例子
class A(object):
def foo(self,x):
print (self,x)
@classmethod
def class_foo(cls,x):
print(cls,x)
@staticmethod
def static_foo(x):
print (x)
a=A()
a.foo('pic')
a.class_foo('pic')
这是输出
<__main__.A object at 0x7f413121c080> pic
<class '__main__.A'> pic
这有什么实际意义?实施?
答案 0 :(得分:1)
实施方面,classmethod
采用第一个强制性cls
参数,而staticmethod
则不是这样。
实际意义是你可以调用classmethod
而不必先创建一个类对象。在代码中,这是完全有效的:
A.class_foo('pic')
您可以在这篇优秀的SO帖子上阅读有关此主题的更多信息。