getattr, setattr {python}

  • docs.org
  • dict가 아닌 일반 객체는 ["attr"] 용법을 사용하기 위해선 반드시 __getitem__,__setitem__ 매직 메서드를 구현해야 한다. 만약 내가 만든 객체가 아니라면?객체의 필드에 접근해야 하는데 하필이면 필드가 이러저러한 이유로 문자열로 들어온다면?
  • 줄곧 생각한 방식은 mapper를 만들어 일일이 호출을 하는 로직을 만드는 것이었다. 엄청난 양의 보일러플레이트 코드가 생기겠지
  • 이 문서가 나온 이유가 바로 저 내장함수 덕분이다. getattr(x, 'foobar')x.foobar와 동일하다. 마찬가지로 setattr(x, 'foobar', 123)x.foobar = 123과 동일하다.