在模块之间传递变量

问题描述 投票:2回答:1

我有一个tkinter gui,它具有基本的输入框和搜索按钮。在名为SearchList.py

的模块中搜索列表

Main.py

from tkinter import *
from SearchList import *
root = Tk()
Output = []

def search():
    search = e.get()
    Output= SearchList.go(search)

#search bar
e= Entry(root, width=50, borderwidth=5)
e.grid(row=0, column=0, columnspan=2)

#search button
doneButton = Button(root, text="Search", width= 10, command=search).grid(row=0, column=4)


#arranges output in a 5 column rectangle
r, c = (1,0)

c_limit= 5

for thing in Output:
    myButton = Button(root, text=thing,height=5, width=25, borderwidth=3, padx=10).grid(row=r,column=c)
    c+=1
    if c == c_limit:
        c=0
        r+=1


root.mainloop()

这可以让我输入要搜索的内容,并将其发送到Searchlist.py模块,并且输出(来自列表的匹配项)以矩形排列。

SearchList.py

Output = []


def main(search):
    for x in range(list):
         if list[x]== search:
              Output.append(list[x])
         else:
              continue
    Output.sort
    return Output


def go(search):
    with client:
        client.loop.run_until_complete(main(search))

但是它一直返回None。我也知道我一定不能正确调用模块-只是不确定如何。

python search module return parameter-passing
1个回答
0
投票

这里有两个小问题。首先,您在return中缺少一个SearchList.py

def go(search):
    with client:
        # insert return here
        return client.loop.run_until_complete(main(search))

第二,您没有在search中写入正确的变量:

def search():
    global Output
    search = e.get()
    Output= SearchList.go(search)
© www.soinside.com 2019 - 2024. All rights reserved.