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):