클래스의 속성을 동적으로 업데이트하고 싶습니다만 setattr과 getattr의 조합이 사용하지 못하는 것 같습니다. setattr과 getattr을 결합한 Python
class Container(object):
def __init__(self):
pass
container = Container()
attributes = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4, 5], [True, False], ['red', 'blue', 'green'], [0, 1, -1, -5, 99]]
내가 명시 적 속성과 해당 값 목록을 구성하는 예제의 목적을 위해주의하시기 바랍니다 :
여기 내 주요 클래스입니다. 그러나이 코드의 실제 적용에서 나는 사전에 아무 것도 모른다. 번호, 이름 또는 값이 아닙니다. 이것은 동적으로 그렇게 할 필요성을 요구합니다. 나는이 코드를 실행하면
for key, value in zip(attributes, values):
setattr(container, key, [])
for val in value:
setattr(container, key, getattr(container, key).append(val))
이 부분은 작동하지 않습니다 여기에
코드의 나머지 부분입니다. getattr 부분을 tmp 변수에 저장 한 다음 setattr을 호출하기 전에 목록에 대한 append 메서드를 호출 할 수 있지만 가능한 경우이를 응축하고 싶습니다.누구나 왜 이것이 작동하지 않는지 설명 할 수 있습니까? 어떤 대안이 있습니까?
도움 주셔서 감사합니다.
"* 코드를 실행할 때 *이 부분이 작동하지 않습니다." 또한, 당신은 무엇을 기대합니까? – Blender