我如何安排函数以使用我制作的此类?

时间:2019-03-29 01:33:17

标签: python function class

我正在尝试通过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)

2 个答案:

答案 0 :(得分:0)

在您的班级温度的init函数中,您的代码“ self.tempOverall =(weather ['main'] ['temp'])”在定义之前使用天气。您可以将天气变量作为init函数的参数传递。

答案 1 :(得分:0)

在为温度类别创建对象时,将weather作为参数传递,并在init方法中添加weather作为参数。