반응형
Python에서 동적 개체 (다른 개체 내부)를 만든 다음 속성을 추가하고 싶습니다.
나는 시도했다 :
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
그러나 이것은 작동하지 않았습니다.
어떤 아이디어?
수정 :
값 목록을 반복하는 for
루프에서 속성을 설정하고 있습니다.
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
위의 예에서는 obj.a.attr1
, obj.a.attr2
, obj.a.attr3
을 얻습니다.
for
루프에서 obj.a.NAME
을 수행하는 방법을 몰랐기 때문에 setattr
함수를 사용했습니다.
위의 예에서 p
의 값을 기반으로 속성을 어떻게 설정합니까?
해결 방법
obj = someobject
obj.a = lambda: None
setattr(obj.a, 'somefield', 'somevalue')
유서 깊은 Bunch
레시피와 비교했을 때 명료 함을 잃어도 괜찮은지 여부는 물론 스타일 결정은 여러분에게 맡길 것입니다.
참조 페이지 https://stackoverflow.com/questions/2827623
반응형
'파이썬' 카테고리의 다른 글
파이썬 Pandas How to filter a Series (0) | 2020.12.01 |
---|---|
파이썬 Angles between two n-dimensional vectors in Python (0) | 2020.12.01 |
파이썬에서 datatype : object를 float64로 변환하는 방법은 무엇입니까? (0) | 2020.11.30 |
파이썬 목록 당 하나의 새 행인 Python csv 파일에 목록 작성 (0) | 2020.11.30 |
파이썬 Python-Windows에서 pip.ini 또는 pip.conf를 찾을 수 없음 (0) | 2020.11.30 |
댓글