我有一个档案 outSimulation.py这个文件有一个叫做的函数 outlet1和此函数内部有一个名为data
的变量我想从另一个名为main.py
的程序中访问此数据变量我已尝试使用绝对导入
from outSimulation import outlet1
values = outlet1.data()
但它不起作用。任何帮助表示赞赏。
答案 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
,还有其他解决方案,但您的问题表明并非如此,所以我不会进入该阶段。
* 嗯......呃,没关系。你可以为调试做一些古怪的事情,但你最好不要考虑那些用于你的目的。