在 python 空闲时从 main 方法访问变量

accessing variables from main method in python idle

所以我知道如果我创建一个没有声明 main 方法的 python 文件然后我 运行 它,我可以从闲置中访问该文件中的变量,但是如果我确实声明了一个 main 方法,然后在 main 方法完成 运行ning 后我无法从空闲访问任何变量。

有谁知道是否有一种变通方法可以让我在我的 python 程序中使用方法,同时还可以在空闲时从它们内部访问变量?

如果您在 method/function 中声明变量,它们仅在该方法或函数的生命周期内。您无法从外部访问它们。如果您希望某些变量可用,您可以在全局 space 中声明它,然后像导入任何其他变量一样导入 function/class.

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 除非你 return 形成你的函数并像这样保存

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