Ошибка получения атрибута при создании класса для извлечения данных о погоде в python - PullRequest
1 голос
/ 11 апреля 2020

Это работало нормально, когда я выполнял этот метод напрямую, но я получаю сообщение об ошибке, когда я решил создать класс, который будет получать данные о погоде для меня.

'' '

import urllib.request
import json
class weather:

    def __init__(self, city, key, URL):
        self.city = city
        self.key = key
        self.URL = "http://api.openweathermap.org/data/2.5/weather?q="


    def getTemprature(self,a):
        fullURL = str(self.URL+self.city+"&appid="+self.key)
        data = urllib.request.urlopen(fullURL).read()
        temp = float(json.loads(data)["main"]["temp"])
        return temp

city="New Delhi" #default city
apiKey = "54df40e238084fbf095d3540271e48a0"
print(weather.getTemprature(city,apiKey))

'' '

1 Ответ

2 голосов
/ 11 апреля 2020

У вас есть опечатка в функции getTemprature, вам нужен только параметр 'self'. Вы должны передать city, apiKey инициализатору при создании объекта погоды, а не функции getTemprature.

import urllib.request
import json
class weather:
    def __init__(self, city, key, URL):
        self.city = city
        self.key = key
        self.URL = "http://api.openweathermap.org/data/2.5/weather?q="

    def getTemprature(self):
        fullURL = str(self.URL+self.city+"&appid="+self.key)
        data = urllib.request.urlopen(fullURL).read()
        temp = float(json.loads(data)["main"]["temp"])
        return temp

city="New Delhi" #default city
apiKey = "54df40e238084fbf095d3540271e48a0"

weatherNewDelhi = weather(city, apiKey)
print(weatherNewDelhi.getTemprature())

Выход:

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