Programming/Python
NamedTuple 초기화 이후 수정하는 방법
Chan_찬
2020. 12. 11. 12:33
반응형
파이썬의 듀플은 수정불가다.
그래도 할 수 있다. None을 default 값으로 하고, 초기화 이후에 수정하는 방법이다
namedtuple 의 _replace()
을 사용하면 된다._replace
가 수정 후 새로운 namedtuple을 리턴하기 때문에 재할당 해줘야한다.
tp._replace(title='reset')
import collections
fields = "dag task_id flag puller jandi_url jandi_title jandi_color jandi_info"
JandiInfo = collections.namedtuple("JandiInfo", fields)
JandiInfo.__new__.__defaults__ = (None,) * len(fields.split(" "))
# namedtuple 초기화
info = JandiInfo(task_id='jandi_task', flag=True)
info
# task_id, flag 외는 전부 None으로 셋
JandiInfo(dag=None, task_id='jandi_task', flag=True, puller=None, jandi_url=None, jandi_title=None, jandi_color=None, jandi_info=None)
# 파라미터값 수정 '_replace', task_id, jandi_title 수정
info = info._replace(task_id='update_jandi_task',jandi_title='hahah')
info
# task_id, jandi_title 이 수정된 것을 확인
JandiInfo(dag=None, task_id='update_jandi_task', flag=True, puller=None, jandi_url=None, jandi_title='hahah', jandi_color=None, jandi_info=None)
728x90
반응형
BIG