Python dict concatenate and way to convert dict to namedtuple

Теги:

Python dict concatenate

d1={1:2,3:4}
d2={5:6,7:9}
d3={10:8,13:22}

Самый быстрый

d4 = dict(d1, **d2); d4.update(d3)

Еще

d4 = {}
for d in (d1, d2, d3):
    d4.update(d)
d4 = dict(d1)
for d in (d2, d3):
    d4.update(d)

Ссылка на источник и обсуждение

Dict to namedtuple

Статья на оверфло

Создаем объект именованного кортежа из словаря

MyTuple = namedtuple('MyTuple', d)

Затем распаковываем в инстанс этот же словарь

my_tuple = MyTuple(**d)

Property в классах - как использовать

Приватные атрибуты через сет/гет

class SampleClass1:

    def __init__(self, a):
        ## calling the set_a() method to set the value 'a' by checking certain conditions
        self.set_a(a)

    ## getter method to get the properties using an object
    def get_a(self):
        return self.__a

    ## setter method to change the value 'a' using an object
    def set_a(self, a):

        ## condition to check whether 'a' is suitable or not
        if a > 0 and a % 2 == 0:
            self.__a = a
        else:
            self.__a = 2

Через проперти

class Property:

    def __init__(self, var):
        ## initializing the attribute
        self.a = var

    @property
    def a(self):
        return self.__a

    ## the attribute name and the method name must be same which is used to set the value for the attribute
    @a.setter
    def a(self, var):
        if var > 0 and var % 2 == 0:
            self.__a = var
        else:
            self.__a = 2

Можно создават ьконструкции, в которых “морозить” данные ээкземпляров. Подробнее