2015-05-29 30 views
0

所以我知道如果我創建一個沒有聲明main方法的python文件,然後運行它,我可以從空閒狀態訪問該文件中的變量,但如果我聲明一個主要方法,然後在主要方法結束運行後,我無法從閒置訪問任何變量。在python空閒時訪問main方法中的變量

有誰知道是否有一種解決方法,我可以在我的Python程序中使用方法,同時也可以在閒置時訪問它們中的變量?

+1

這並不需要一個解決方法,因爲它需要知識[範圍](https://docs.python.org/3.4/tutorial/classes.html#python-scopes -and-命名空間)。 – TigerhawkT3

+0

您可以使用該頁面左上角的下拉菜單訪問[2.7版本](https://docs.python.org/2.7/tutorial/classes.html#python-scopes-and-namespaces),具有完全相同的文本。 – TigerhawkT3

回答

0

如果您在方法/函數中聲明變量,則它們只在該方法或函數的生命週期的範圍內。你無法從外部訪問它們。如果你想要一些變量可用,你可以在全局空間中聲明它,然後像任何其他函數/類一樣導入它。

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

相關問題