你可能需要一個classmethod
。它的工作原理類似於staticmethod
,但將該類作爲隱含的第一個參數。
class Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass(object):
@classmethod
def foo(cls):
print cls.__name__
Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass.foo() # prints Claaa...
警告:
class Subclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass(
Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass):
pass
Subclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass.foo() # prints Subclaaa...
另外,在模塊級定義爲類較短的別名:
class Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass2(object):
@staticmethod
def foo():
return _cls2
_cls2 = Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass2
# prints True
print (Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass2 is
Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaass2.foo())
使您的班級名稱縮短。 –
叫它無類名 – aaronman
你應該使用一個類的方法,而不是一個靜態方法 [更多資訊] [1] [1]的:http://stackoverflow.com/問題/ 9744223 /蟒差之間靜電的方法-VS-類方法 –