Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python idle中从main方法访问变量_Python_Variables_Main - Fatal编程技术网

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

在python idle中从main方法访问变量,python,variables,main,Python,Variables,Main,所以我知道如果我创建了一个python文件,没有声明main方法,然后运行它,我可以从idle访问该文件中的变量,但是如果我声明了main方法,那么在main方法完成运行后,我就不能从idle访问任何变量 有人知道有没有一种变通方法,我可以在python程序中使用方法,同时也可以在空闲状态下从方法中访问变量 如果在方法/函数中声明变量,则它们仅在该方法或函数的生命周期内有效。你不能从外面接近它们。如果希望某个变量对您可用,请在全局空间中声明它,然后像导入任何其他函数/类一样导入 file1.py

所以我知道如果我创建了一个python文件,没有声明main方法,然后运行它,我可以从idle访问该文件中的变量,但是如果我声明了main方法,那么在main方法完成运行后,我就不能从idle访问任何变量


有人知道有没有一种变通方法,我可以在python程序中使用方法,同时也可以在空闲状态下从方法中访问变量

如果在方法/函数中声明变量,则它们仅在该方法或函数的生命周期内有效。你不能从外面接近它们。如果希望某个变量对您可用,请在全局空间中声明它,然后像导入任何其他函数/类一样导入

file1.py

some_var = whatever

def foo():
    another_var = 42

def bar():
    return 42
from file1 import some_var
file2.py

some_var = whatever

def foo():
    another_var = 42

def bar():
    return 42
from file1 import some_var
将为您提供访问
某些\u var
的权限,但除非您从函数返回并按此方式保存,否则您将无法访问另一个\u 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)
>>def foo(x):
进口pdb;pdb.set_trace()#这是在函数中很少可以导入的次数之一
返回x*2
>>>傅(5)
>(3)富()
(Pdb)x
5.
(Pdb)

pdb
是一个非常有用的调试工具。如果您开始获得一些奇怪的输出,它将帮助您查看函数内部发生了什么。您可以阅读更多有关它的信息

这不需要解决方法,而是需要了解。您可以使用该页面左上角的下拉菜单访问,其中包含完全相同的文本。