Увядание для Python? - PullRequest
       22

Увядание для Python?

0 голосов
/ 09 января 2019

В Java Lombok есть функция под названием wither, которая клонирует существующий экземпляр и изменяет только один его атрибут ( с ).

Есть ли что-нибудь сопоставимое в Python?

(Python-проекты, подобные Lombok, выглядят следующим образом, но у них нет этой функциональности:

  1. https://github.com/python-attrs/attrs
  2. https://pysynthetic.readthedocs.io/en/latest/
  3. https://github.com/IgniparousTempest/puffadder/)

1 Ответ

0 голосов
/ 09 января 2019

Вы можете использовать copy.copy

import copy

my_copy = copy.copy(my_obj)
my_copy.my_attribute = my_value

Обратите внимание, что при этом выполняется поверхностное копирование, т. Е. Все ссылки на другие объекты (например, списки) будут указывать на один и тот же объект. Если вам нужна «глубокая» копия, используйте copy.deepcopy(my_obj).

Это работает с большинством, но не со всеми объектами.

...