我想用类方法初始化类成员,但不知道如何调用它。Python和类变量的初始化 - 如何使用类方法初始化成员?
你可以提出一些解决方案 - 也许这是非常平凡的,但我找不到解决方案?
这段代码不起作用 - 我不是为什么?
class X(object):
@staticmethod
def __Y():
return 1
CONSTANT = __Y()
x = X()
print x.CONSTANT
这将工作,但我需要使用调用方法来初始化类成员。
class X(object):
CONSTANT = 1
x = X()
print x.CONSTANT
注意,我不希望初始化对象变量,但类变量。
只是好奇,滴''staticmethod'会把'def __Y()'变成'def __Y(self)',对吧?如何在不实例化类的情况下调用该方法?在这种情况下,'CONSTANT = __Y(X())'? – 2013-05-09 07:50:28
@Bibhas不,只有在通过类或实例访问'__Y'时才会插入'self'。如果你从类定义中调用它,一个'def'就是一个'def'。由于首先没有魔法发生,你不需要'@ staticmethod'来防止它发生。 – user4815162342 2013-05-09 07:52:17
@Bibhas Do调用'x .__ Y()'其中x是一些实例化的对象。相反,在类定义中调用'__Y()'不会导致'__Y(self)'。 – 2013-05-09 07:53:31