无法在2个文件之间发送变量

时间:2015-10-29 19:16:18

标签: python api tkinter

过程: 使用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()

1 个答案:

答案 0 :(得分:1)

您有循环依赖项。 T1需要来自T2的algemeen1,但T2需要来自T1的kenteken1kenteken2。你的设计存在根本缺陷。

另外,你真的不应该导入实际工作的东西。导入通常用于导入数据,函数和类。

您的代码没有简单的解决方案。