簡體   English   中英

試圖從 Python 中的 class 實例訪問全局變量

[英]Trying to access a global variable from class instance in Python

我正在嘗試從 object 實例中訪問在我的主 Python 文件中定義的全局變量。 我已經閱讀了有關該主題的其他一些問題,並且了解到我需要先在 class 方法中使用global關鍵字。

但是,即便如此,我的代碼似乎也不起作用:

from secondclass import SecondClass

somelist = [1,2,3]
obj = SecondClass()

obj.mainmethod()

這是我的另一個包含secondclass的文件:

class SecondClass():
  
  def mainmethod(self):
    global somelist
    print (somelist)

即使我使用的是全局關鍵字,Python 仍然給我錯誤:

NameError: name 'somelist' is not defined

這是為什么?

global作用於同一個模塊。

您有多種選擇來解決這個問題,其中包括:

  • 將變量傳遞給 class 並使用self.attribute
  • 將變量傳遞給方法。
  • 創建一個包含全局的模塊,例如globals.py並從兩側導入它。
  • 使用import secondclass; secondclass.somelist = [1,2,3] import secondclass; secondclass.somelist = [1,2,3]

還有很多其他解決方案。

就個人而言,一周中任何一天的第一天或第二天我都會使用 go。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM