我正在尝试通过Tkinter使用天气GUI,并且正在关注教程https://www.youtube.com/watch?v=D8-snVfekto&t=3227s,并且试图添加自己的类而不是使用更多代码。
我不断收到错误消息,说明我得到了weather is not defined
,但是如何安排函数和类以使用我的类并打印return str(name) +' ' + str(description) +' '+ str(tempOverall)
?
我试图重新排列代码以运行get_weather()
函数,但是随后我必须运行并调用城市名称,直到用户输入城市名称才知道。
这是我的课程...
class temperature():
def __init__(self):
super(temperature, self).__init__()
self.tempOverall = (weather['main']['temp'])
self.tempMin = (weather['main']['temp_min'])
self.tempMax = (weather['main']['temp_min'])
temp = temperature()
这是我创建响应的地方...
def formatResponse(weather):
name = (weather ["name"])
description = (weather['weather'][0]['description'])
return str(name) +' ' + str(description) +' '+ str(tempOverall)
最后这是我使用API的地方...
def get_weather(city):
wether_key = "22c2d09d0eb26074b8c8b4a293f72682"
url = "https://api.openweathermap.org/data/2.5/weather"
params= {'APPID': wether_key, 'q': city, 'units': 'imperial'}
response = requests.get(url, params=params)
weather = response.json()
label['text'] = formatResponse(weather)
答案 0 :(得分:0)
在您的班级温度的init函数中,您的代码“ self.tempOverall =(weather ['main'] ['temp'])”在定义之前使用天气。您可以将天气变量作为init函数的参数传递。
答案 1 :(得分:0)
在为温度类别创建对象时,将weather作为参数传递,并在init方法中添加weather作为参数。