我有两个.py文件,一个仅包含函数,另一个具有运行这些函数的代码。
当我使用以下命令运行该功能
from Code_function import some_function
some_function()
它运行函数,但不将变量保存在变量浏览器中(我正在使用spyder)
Code_function.py中的函数示例是
def some_function():
global csv1
csv1 = pd.read_csv('csv1.csv')
如何在变量资源管理器中使用csv1?
答案 0 :(得分:0)
您可能需要从函数返回数据框,然后调用并将其分配给主文件。这对我有用
def some_function():
global csv1
csv1 = pd.read_csv('csv1.csv')
return csv1
主要:
from Code_function import some_function
df = some_function()
答案 1 :(得分:0)
首先,在Python中,因为函数可以返回多个值,所以不需要输出变量(严格来说,这是通过返回元组实现的):
def fn():
return 1,2
a,b = fn()
现在,关于您的问题:
尽管未在7.12. The global statement — Python 3.7.3 documentation中指定,但测试显示 global
在函数的 lexical 范围中设置了名称-即相对功能代码所在的位置。
因此csv1
变量将最终在Code_function
模块中。如果程序中没有绑定到该模块对象的名称,则必须以sys.modules['<full name>']
的身份访问它:
>>> import Code_function
>>> Code_function.csv1
<...>
>>> sys.modules['Code_function'].csv1
<...>