从python空闲的main方法访问变量
Posted
技术标签:
【中文标题】从python空闲的main方法访问变量【英文标题】:accessing variables from main method in python idle 【发布时间】:2015-08-12 17:28:27 【问题描述】:所以我知道如果我创建一个没有声明 main 方法的 python 文件然后我运行它,我可以从空闲访问该文件中的变量,但是如果我声明了一个 main 方法,那么我不能在 main 方法完成运行后,从空闲访问任何变量。
有谁知道是否有一种解决方法,我可以在我的 python 程序中使用方法,同时还可以在空闲时从它们中访问变量?
【问题讨论】:
这不需要解决方法,因为它需要scope 的知识。 您可以使用该页面左上角的下拉菜单访问the 2.7 version,其文本完全相同。 【参考方案1】:如果您在方法/函数内声明变量,则它们仅在该方法或函数的生命周期内。您无法从外部访问它们。如果您希望某个变量可用,您可以在全局空间中声明它,然后像导入任何其他函数/类一样导入。
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
【讨论】:
以上是关于从python空闲的main方法访问变量的主要内容,如果未能解决你的问题,请参考以下文章
如何将变量从 PyQt5 UI 返回到 Main 函数 - Python