用字典/多个词典创建一个类

时间:2018-10-10 15:05:54

标签: python python-3.x class dictionary

因此,我是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_tempdate设置为上述默认常量,并通过循环比较并替换为最大值。

我认为使用一个类来创建实例(或一些天真的初学者)会是个好主意。 即使不是,我真的很想学习如何使用类来做到这一点。

真的希望学习。我听说这里有人很好:)

1 个答案:

答案 0 :(得分:0)

使用类,请尝试以下操作:

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