在Python 3.x脚本中执行文件并保持变量可调用

时间:2013-12-04 17:28:05

标签: python user-interface pyqt qt-designer

我没有找到一种方法来保持变量在另一个python.py文件中定义/调用 使用“exec”后。

这是我用pyqt做的事情: 我想执行更大的代码和 所以我用“exec”来保持我的“gui程序”与我的“计算程序”分开

...gui. stuff...

if self.checkbox.checkState(): #"checkbox" = label of a checkboy in QTDesigner
        x=14

    exec(open("./calculation_where_x_used.py").read()) 

def onClose(self): # this is a button on my gui. labelled "Close"
    print("bye")
    self.close()

当我在gui中选中一个复选框后运行它。代码执行它应该做的事情,但是在“calculation_where_x_used.py”中定义的所有类型的矩阵和变量都不能通过shell调用...

我该如何解决这个问题? PS:我使用Spyder和Python 3.3

1 个答案:

答案 0 :(得分:1)

嗯...... ick?

不要(ab)使用eval;将您的计算代码转换为模块,导入并调用它。让它返回结果值 - 问题解决了。