繁体   English   中英

在Python类中使用self进行属性返回

[英]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._barreturn self._bar返回一个类属性(即在所有实例之间共享的属性)。

要返回实例属性,您需要return self._bar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM