[英]Using self for property return in python class
我来自javascript背景,我认为这是我首先遇到这个问题的原因。
使用self来引用方法定义中的类的属性时,有什么区别。
例如
class Foo:
_bar = 15;
def getBar(self):
return self._bar;
与
class Foo:
_bar = 15;
def getBar(self):
return _bar;
我想我可以通过说出引用类内属性时使用self的作用来改写这个问题。 IE如果由于某种奇怪的原因,我想在getBar()内返回一个全局_bar变量呢?
您的第二个代码不返回class属性。 它将返回全局_bar
如果存在),否则将引发NameError
异常。 这是因为不会自动从方法中查找类范围-查找变量时仅查找函数范围和全局范围。
您可以使用return Foo._bar
或return self._bar
返回一个类属性(即在所有实例之间共享的属性)。
要返回实例属性,您需要return self._bar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.