코드에서 getattr 이 있어서 간단하게 찾아봄
결론적으로 getattr(object, attr) 와 실제 object.attr 로 부르는 것이 동일하다는 뜻
For example, getattr(x, 'foobar') is equivalent to x.foobar.
docs.python.org/3/library/functions.html#getattr
사용예를 보면, 아래 처럼 속성함수이름 자체를 변수로 만들어서 호출하고 싶은 경우에 쓰면 되겠다.
왜냐하면 문자열로 visit_a 라고 만든다고 해서, 함수 포인트를 가리키는 것이 아닌데
문자열을 만들어서 해당 문자열과 동일한 함수를 호출하고 싶다면 아래처럼 코드를 꾸며야 한다.
이때는 getattr 이 필수적이라고 볼 수 있다.
def visit_a(self, ...):
...
...
def dispatch(self, value):
method_name = 'visit_' + str(value)
method = getattr(self, method_name)
method()
위의 소스는 아래 글에서 참조한 내용입니다.
docs.python.org/3/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python
BJ.
Aleksandar Pasaric 님의 사진, 출처: Pexels
'IT > 파이썬' 카테고리의 다른 글
파이썬 여러 widget 이 하나의 슬롯(callback/signal) 함수 사용하기 (0) | 2021.03.16 |
---|---|
파이썬 변수 할당시 메모리 복사? 참조? copy deepcopy slicing (0) | 2021.03.10 |
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수 (0) | 2021.02.27 |
파이썬 pyside2 버튼 글자 왼쪽 정렬 (0) | 2021.02.26 |
파이썬 pyside2 Qt designer QFrame 모양 속성 (0) | 2021.02.25 |