Python 在tkinter中声明全局,并导入模块
如果我“激活”功能Python 在tkinter中声明全局,并导入模块,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,如果我“激活”功能def calculate(*arg)并注释掉导入计算\u英尺\u米,转换器工作(从现代Tkinter复制) 我正在尝试了解如何导入模块(在本例中,我还有一个模块包含相同的def calculate(*arg)脚本,称为calculation\u feet\u meters),并从模块调用函数。我不知道该在何处定义全局函数,也不知道如何在此上下文中定义全局函数。从其他模块导入的函数在导入到的模块中看不到全局函数 全局变量是仅在中定义函数的模块的“局部” 您可以将函数包装在lam
def calculate(*arg)
并注释掉导入计算\u英尺\u米
,转换器工作(从现代Tkinter复制)
我正在尝试了解如何导入模块(在本例中,我还有一个模块包含相同的
def calculate(*arg)
脚本,称为calculation\u feet\u meters
),并从模块调用函数。我不知道该在何处定义全局函数,也不知道如何在此上下文中定义全局函数。从其他模块导入的函数在导入到的模块中看不到全局函数
全局变量是仅在中定义函数的模块的“局部”
您可以将函数包装在lambda中:
value = float(feet.get())
NameError: global name 'feet' is not defined.
并将calculate
函数更改为接受feet
作为显式参数:
ttk.Button(mainframe, text="Calculate", command = lambda: calculate(feet)).grid(column=3, row=3, sticky=W)
这样我就得到了一个错误,我向lambda提供了0个参数。恐怕我对这一点很陌生,所以我真的不明白我只是在复制你写的东西,所以也许你假设了一些我应该知道的东西???做这个work@user1478335:抱歉,我的错误,按钮
命令
参数不接受任何参数。我删除了a
参数。
ttk.Button(mainframe, text="Calculate", command = lambda: calculate(feet)).grid(column=3, row=3, sticky=W)
def calculate(feet):