如何通过导入使用其他文件更改全局变量

时间:2018-02-21 16:15:15

标签: python variables global operator-keyword

我使用 Tkinter 在GUI上使用GUI制作了这个计算器,这是我的大学项目,但是有一些要求,一个是每个函数都应该导入主GUI文件而不是放在那里

例如,我为textvariable和1到9的按钮创建了一个空操作符textinput,并为它定义了一个按钮点击处理函数:

def btnClick(numbers):
    global operator
    operator=operator+str(numbers)
    text_Input.set(operator)

我已将此保存在名为“Buttons.py”的其他文件中

现在我在我的gui文件中调用它并按下按钮来执行它

import Buttons
button7=Button(cal,padx=16,bd=4,fg='black',font=('The Citadels',20),
           text='7',command=lambda:Buttons.btnClick(7),bg='ghost white')
    .grid(row=5,column=0)

但是说错误

  

名称'operator'未定义

我的代码缺少什么工作?

1 个答案:

答案 0 :(得分:0)

当您自己使用import语句时,导入模块但不导入命名空间。未定义operators,因为它是模块命名空间的一部分。要解决此问题,您可以使用Buttons.operator代替operator,也可以将导入语句更改为from Buttons import *,这会将Buttons中的所有变量导入你的命名空间也是如此。