过程: 使用T1,您可以获得一个gui,您可以在其中放置两个licenceplate编号。这两个号牌放在kenteken1和kenteken2中。在T2我得到kenteken1和kenteken2。我使用它们从API获取信息以获取这些汽车信息。在algemeen1和algemeen2我把我得到的信息。在此之后我想在T1中打印algemeen1和algemeen2。
问题: 我无法让它发挥作用。
有任何建议让代码运行和改进吗?可能是我看不到的简单解决方案。
运行下面的代码就是这样:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Users\Shaker\PycharmProjects\RDW_Vergelijker_Shaker\T1.py", line 15, in show_entry_fields
print_info_auto()
File "C:\Users\Shaker\PycharmProjects\RDW_Vergelijker_Shaker\T1.py", line 18, in print_info_auto
print(algemeen1)
NameError: name 'algemeen1' is not defined
T1.py
from tkinter import *
# from T2 import algemeen1
# from T2 import algemeen2
from T2 import *
global kenteken1
global kenteken2
def show_entry_fields():
global kenteken1, kenteken2
kenteken1 = Kenteken1_entry.get()
kenteken2 = Kenteken2_entry.get()
print_info_auto()
def print_info_auto():
print(algemeen1)
print(algemeen2)
master = Tk()
Label(master, text="Kenteken 1").grid(row=0)
Label(master, text="Kenteken 2").grid(row=1)
Kenteken1_entry = Entry(master)
Kenteken2_entry = Entry(master)
Kenteken1_entry.grid(row=0, column=1)
Kenteken2_entry.grid(row=1, column=1)
Button(master, text='Sluit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Vergelijk', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
mainloop()
T2.py
import requests
from T1 import kenteken1
from T1 import kenteken2
entry1 = kenteken1
entry2 = kenteken2
ken1 = '&kenteken='+entry1
ken2 = '&kenteken='+entry2
token = '$$app_token=d3j2ChpOuaeghKvy4u1C2arcO'
api_query_algemeen = "&$select= merk, handelsbenaming, voertuigsoort, inrichting, uitvoering, eerste_kleur, " \
"massa_rijklaar, wam_verzekerd, vervaldatum_apk, datum_eerste_toelating"
url_algemeen1 = 'https://opendata.rdw.nl/resource/m9d7-ebf2.json?{}{}{}'.format(token,api_query_algemeen,ken1)
url_algemeen2 = 'https://opendata.rdw.nl/resource/m9d7-ebf2.json?{}{}{}'.format(token,api_query_algemeen,ken2)
response = requests.get(url_algemeen1)
algemeen1 = response.json()
response = requests.get(url_algemeen2)
algemeen2 = response.json()
答案 0 :(得分:1)
您有循环依赖项。 T1需要来自T2的algemeen1
,但T2需要来自T1的kenteken1
和kenteken2
。你的设计存在根本缺陷。
另外,你真的不应该导入实际工作的东西。导入通常用于导入数据,函数和类。
您的代码没有简单的解决方案。