在 Python 中使用類別時,您可能會遇到需要從方法內存取類別變數的情況。但是,僅在方法中引用變數可能會導致名稱錯誤。
問題
考慮以下程式碼片段:
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar)</code>
當嘗試執行此程式碼時,您將遇到NameError: 全域名稱「bar ”未定義。這是因為變數 bar 是類別變量,方法 bah 無法直接存取它。
解
要在方法中存取類別變量,有兩個選項:
如果您打算修改類別變量,請使用 Foo.bar;否則,請使用 self.bar。
範例
使用正確的方法重建程式碼片段:
<code class="python">class Foo(object): bar = 1 def bah(self): print(self.bar) # Access the instance variable f = Foo() f.bah() # Prints 1</code>
此程式碼將列印 1,存取實例變數。如果您想要存取類別變量,只需在 print 語句中將 self.bar 變更為 Foo.bar 即可。
以上是如何從 Python 中的方法存取類別變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!