Как я могу расположить свои функции, чтобы использовать этот класс, который я сделал? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь использовать графический интерфейс пользователя погоды с использованием Tkinter, и я следую учебному пособию @ 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 голосов
/ 29 марта 2019

При создании объекта для температурного класса передайте погоду в качестве аргумента и добавьте погоду в качестве аргумента в методе init.

0 голосов
/ 29 марта 2019

В функции инициализации температуры вашего класса ваш код "self.tempOverages = (weather ['main'] ['temp'])" использует погоду до определения. Вы можете передать переменную погоду в качестве параметра функции инициализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...