在 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
所以我知道如果我创建一个没有声明 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