Какой самый короткий способ скопировать все, несмотря на один атрибут / поле, из одного в другой именованный кортеж?Это можно сделать следующим образом.
initial_person = Person(name='Bob', age=30, gender='male') new_age = 31 modified_person = Person(name=initial_person.name, age=new_age, gender=initial_person.gender, )
Однако у меня гораздо больше полей и я бы предпочел более короткую реализацию.Этот вопрос относится к Python: копирование именованных кортежей с одинаковыми атрибутами / полями .
Используйте _replace ()
initial_person = Person(name='Bob', age=30, gender='male') modified_person = initial_person._replace(age=31)
Обратите внимание, что это небольшой взлом, теоретически вы не должны использовать методы с подчеркиванием в начале.