【发布时间】:2020-10-29 23:47:17
【问题描述】:
我想将一个实例(如指针)从我的主模块传递到另一个模块,因此我将能够更改我的主模块的条目值。在我的示例中 - 当用户单击按钮时,它会使用 lambda 函数通过引用发送对象,一切正常。
但是,在我的 calc.py 模块中,我有很多功能。所以我需要将入口对象附加到我所有的按钮和第二个模块中的接收函数。
是否有一种简单的方法可以将入口对象的地址传递给第二个模块,以便那里的所有函数都能够访问该对象(就像它对它们来说是全局的),而不必显式地将它传递给每个模块功能?
我附上了我的部分代码。我是 Python 的初学者。
MyApp.py
# module 1 (main)
import tkinter
import tkinter.ttk
from calc import*
window = tkinter.Tk()
e1 = tkinter.ttk.Entry(frame5, width=62)
e1.grid()
insert7_btn = tkinter.ttk.Button(frame5, text="7", command=lambda: insert_num(7,e1))
insert7_btn.grid()
button_plus = tkinter.ttk.Button(frame5, text="+", command=lambda: memory('+',e1))
button_plus.grid()
....
....
window.mainloop()
计算.py
# module 2
import tkinter
import tkinter.ttk
import math
def insert_num(number,e1):
.....
def memory(operation,e1):
.....
......
【问题讨论】:
-
在 calc 中导入 Myapp 并使用 Myapp.e1。无需将其作为参数。
-
那么如果我通过引用传递一个变量呢?我问如何以不同的方式做到这一点!!!!!!!!!!!!!!!!!!!!!!!!!
-
@eric:这将导致循环导入 - 您不能让 MyApp.py import calc.py 也让 calc.py import MyApp.py。
标签: python-3.x tkinter python-module