0
所以我知道如果我創建一個沒有聲明main方法的python文件,然後運行它,我可以從空閒狀態訪問該文件中的變量,但如果我聲明一個主要方法,然後在主要方法結束運行後,我無法從閒置訪問任何變量。在python空閒時訪問main方法中的變量
有誰知道是否有一種解決方法,我可以在我的Python程序中使用方法,同時也可以在閒置時訪問它們中的變量?
所以我知道如果我創建一個沒有聲明main方法的python文件,然後運行它,我可以從空閒狀態訪問該文件中的變量,但如果我聲明一個主要方法,然後在主要方法結束運行後,我無法從閒置訪問任何變量。在python空閒時訪問main方法中的變量
有誰知道是否有一種解決方法,我可以在我的Python程序中使用方法,同時也可以在閒置時訪問它們中的變量?
如果您在方法/函數中聲明變量,則它們只在該方法或函數的生命週期的範圍內。你無法從外部訪問它們。如果你想要一些變量可用,你可以在全局空間中聲明它,然後像任何其他函數/類一樣導入它。
file1.py
some_var = whatever
def foo():
another_var = 42
def bar():
return 42
file2.py
from file1 import some_var
會給你查看在some_var
但您將無法訪問another_var
除非你回到你的形成和功能像這樣保存
from file1 import bar
another_var = bar()
您可以在功能通過使用pdb
庫像這樣運行在一個函數訪問的變量:
>>> def foo(x):
import pdb; pdb.set_trace() # this is one of the rare times it's okay to import inside a function
return x* 2
>>> foo(5)
> <pyshell#13>(3)foo()
(Pdb) x
5
(Pdb)
pdb
是一個非常有用的調試工具。它會幫助你看到你的函數裏面發生了什麼,如果你開始得到一些奇怪的輸出。你可以閱讀更多關於它的信息here
這並不需要一個解決方法,因爲它需要知識[範圍](https://docs.python.org/3.4/tutorial/classes.html#python-scopes -and-命名空間)。 – TigerhawkT3
您可以使用該頁面左上角的下拉菜單訪問[2.7版本](https://docs.python.org/2.7/tutorial/classes.html#python-scopes-and-namespaces),具有完全相同的文本。 – TigerhawkT3