【发布时间】:2014-11-28 10:09:49
【问题描述】:
我正在尝试理解类方法。根据我的阅读,对于类方法,我们必须在定义时将 cls 作为第一个参数传递(类似于我们将 self 作为第一个参数传递的实例方法)。但是我看到,即使我将 self 作为类方法的第一个参数传递,它也可以工作。有人可以解释一下这是如何工作的吗?
我看到了一些用法,他们将类定义为类方法,但它们仍然将 self 作为第一个参数而不是 cls 传递。我正在尝试了解其用法。
#!/usr/bin/python
class A(object):
def foo(self,x):
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(self,x):
print "executing class_foo(%s,%s)"%(self,x)
>>> A.class_foo(2)
executing class_foo(<class '__main__.A'>,2)
>>>
【问题讨论】:
标签: python