簡體   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