본문 바로가기
파이썬

파이썬 개체를 만들고 속성을 추가하려면 어떻게해야합니까?

by º기록 2020. 11. 30.
반응형

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

 

 

반응형

댓글