Создать класс со словарем / несколькими словарями - PullRequest
0 голосов
/ 10 октября 2018

Так что я довольно новичок в Python, с небольшим предварительным знанием программирования.

Я только что прошел классы, но не нашел много о том, как использовать класс с dict.Поэтому подумал, что если кто-то может помочь объяснить это, это может помочь и другим.

Сейчас я делаю то, что у меня есть несколько словарей, с помощью импорта defaultdict() я хочу создать класс дляиспользуйте это.Позвольте мне привести вам пример, ниже приведены мои словари и некоторые константы:

DEFAULT_MAX = -99
DEFAULT_MIN = 999
DEFAULT_STR = 'DATE'

max_temperature = defaultdict(lambda:DEFAULT_MAX)
max_temp_date = defaultdict(lambda:DEFAULT_MAX)
min_temperature = defaultdict(lambda:DEFAULT_MIN)
max_humidity= defaultdict(lambda:DEFAULT_MAX)
min_humidity= defaultdict(lambda:DEFAULT_MIN)

Мне также понадобятся некоторые методы, с помощью которых мои функции будут получать данные из переменных.Другой пример:

if max_temp > max_temperature[year]:
    max_temperature[year] = max_temp
    max_temp_date[year] = date

Где max_temp amd date установлены в константы по умолчанию выше и сравниваются циклом и заменяются максимальным значением.

Я думаю, используякласс для создания экземпляров (или что-то, наивный начинающий) будет хорошей идеей для этого.Даже если бы это было не так, я бы действительно хотел научиться использовать для этого классы.

Очень надеюсь научиться.Я слышал, что здесь есть хорошие люди:)

1 Ответ

0 голосов
/ 10 октября 2018

используя классы, попробуйте следующее:

class weather_year:

    def __init__(self, year):
        self.year = year
        self.max_temp          = -99
        self.min_temp          = 999
        self.max_temp_date     = 'Date'
        self.max_humidity      = -99
        self.min_humidity      = 999


    def add_weather(self, date, 
                          min_temp = 999, 
                          max_temp = -99,
                          min_hum, = 999 
                          max_hum  = -99):
        if self.max_temp < max_temp:
            self.max_temp = max_temp
            self.date = date
        self.min_temp = min(min_temp, self.min_temp)
        self.min_hum =  min(min_hum, self.min_humidity)
        self.max_hum =  max(max_hum, self.max_humidity)

обратите внимание, что у класса weather_year есть метод add_weather, который позволяет вам добавлять все ваши показания.использовать:

thisyear = weather_year(2018)
thisyear.add_weather('2018-10-10', min_temp = 42, max_temp=76, min_hum = 75, max_hum = 99)

print(thisyear.date)
2018-10-10
print(thisyear.min_temp)
42
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...