使用导入的函数保存输出变量

时间:2019-05-14 08:52:05

标签: python spyder

我有两个.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?

2 个答案:

答案 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
<...>