LINUX.ORG.RU

История изменений

Исправление Aswed, (текущая версия) :

b = B(**{k:v for k,v in a.dict.items() if k in [‘x’, ‘y’]}, u=‘b’)

items = a.__dict__.copy()
items['u'] = 'b'
b = B(**items)

b=B(a)

Конечно можно

class B:
    def __init__(self, a):
        items = a.__dict__.copy()
        items['u'] = 'b'
        for k, v in items.items():
            setattr(self, k, v)

Исходная версия Aswed, :

b = B(**{k:v for k,v in a.dict.items() if k in [‘x’, ‘y’]}, u=‘b’)

items = a.__dict__.copy()
items['u'] = 'b'
b = B(**items)