我想要一个代码来做这样的事情
class myClass():
def __init__(self):
self.__var1 = 'var1'
var2 = 'var2'
def myNormalMethod(self):
print self.__var1
@classmethod
def myClassMethod(cls):
print cls.__var2
#How do I do this?
def myMethod():
print self.__var1
print cls.__var2
现在,最后一个方法不起作用,因为我不知道如何访问self和cls。如何实现这一点?在
作为对非常的简要回顾,
self
是指类的当前实例,而cls
变量附加到类itelf,即在每个实例之间共享。这里有一些参考资料可以帮助解决这个问题,以及我是如何得到你的解决方案的:我修改了您的示例代码以说明差异,并包含了一个解决方案:
__var2
和{__dict__
来访问没有实例的任何类变量。在由于类变量成为每个实例的一部分,您只需调用
self
来访问它们。或者,您可以显式地调用self.__class__.__var2
,以明确预期变量实际存储在何处。在您可以只做
self.__var2
-在实例上找不到的任何属性都将自动在类中查找。在要明确表示您期望属性来自类本身,请使用
self.__class__.__var2
。在相关问题 更多 >
编程相关推荐