从外部文件访问函数内的变量?

时间:2017-01-11 23:42:31

标签: python variables module

我有一个档案 outSimulation.py这个文件有一个叫做的函数 outlet1和此函数内部有一个名为data

的变量

我想从另一个名为main.py

的程序中访问此数据变量

我已尝试使用绝对导入

from outSimulation import outlet1 
values = outlet1.data()

但它不起作用。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

函数不是类,并且是专门设计的,因此您无法执行您要执行的操作。这是函数式编程的全部基础和封装背后的概念。即使您的函数是一个类,您的代码仍然无效,因为您尝试将变量作为函数调用(通过将()添加到data)。

将数据创建为可在函数内引用的全局变量,或者让函数返回包含多个项的元组,包括原始返回值和数据变量(杂乱)。如果该方法适合您的问题域,您也可以以面向对象的方式重写该函数,在这种情况下,上面的代码会更有意义。

答案 1 :(得分:0)

你不能 * 从函数外部访问函数本地的变量。

  • 如果要通过data调用的函数访问outlet1()的值,则应将data传递给该函数。
  • 如果您希望在 data完成运行后访问outlet1() 的值,则应从{{返回data(可能还有其他内容) 1}}。
  • 或者,您可以将outlet1()设为模块级变量。假设您在data内为data分配了一些内容,则可以使用outlet1()关键字将其设为模块级变量,

    global

    但这往往比其他方法更不干净。

如果在课程中定义了def outlet1(): global data # code data = ... # more code ,还有其他解决方案,但您的问题表明并非如此,所以我不会进入该阶段。

* 嗯......呃,没关系。你可以为调试做一些古怪的事情,但你最好不要考虑那些用于你的目的。