所以我知道如果我创建一个没有声明主方法的python文件然后我运行它,我能够从空闲中访问该文件中的变量,但是如果我确实声明了一个main方法,那么我就不能主方法运行完毕后,从空闲中访问任何变量。
有没有人知道是否有一个解决方法,我可以在我的python程序中使用方法,同时还能够在空闲中访问其中的变量?
答案 0 :(得分: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
是一个非常有用的调试工具。如果您开始获得一些奇怪的输出,它将帮助您查看函数内部发生的id。您可以阅读更多相关信息here