如何将值传递给另一个文件,该文件本身是在当前文件中导入的?

时间:2017-03-05 10:06:59

标签: python tkinter python-import

我有两个文件,一个包含tkinter代码,另一个包含一个函数。我在tkinter窗口中有一个按钮和一个Entry字段。我试图在单击按钮时执行该功能,但它需要Entry字段中的文本才能工作。尝试从tkinter文件导入任何内容时出错:

tkinter_file.py:

import File
window = Tk()
def input():
    s = entry1.get()
    return s

entry1 = Entry(window)
button1 = Button(window, text='GO', command=File.function)

File.py:

from tkinter import *
import tkinter_file

def function():
    req_url = 'http://someurl.com/{}'.format(tkinter_file.input)
    requests get url etc. etc.

我将tkinter_file导入File.py,或者甚至只导入input函数时似乎收到错误:

File "/etc/etc/tkinter_file.py", line 75, in <module>
button1 = Button(window, text='GO', command=File.function)
AttributeError: module 'File' has no attribute 'function'

我认为req_url没有立即获得s值是问题,也可能将2个文件相互导入,但是你如何克服这个问题呢? / p>

1 个答案:

答案 0 :(得分:3)

如果您有两个模块,例如a.pyb.py,则无法在b中导入模块a,然后在a中导入模块b {1}},因为这会产生循环依赖关系,无法明确解决!

解决方案是将参数作为参数传递给File.function,使该函数正常运行,即entry1的内容。

button1 = Button(window, text='GO', command=lambda: File.function(entry1.get()))