从python idle中的main方法访问变量

时间:2015-05-29 18:19:20

标签: python variables main

所以我知道如果我创建一个没有声明主方法的python文件然后我运行它,我能够从空闲中访问该文件中的变量,但是如果我确实声明了一个main方法,那么我就不能主方法运行完毕后,从空闲中访问任何变量。

有没有人知道是否有一个解决方法,我可以在我的python程序中使用方法,同时还能够在空闲中访问其中的变量?

1 个答案:

答案 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