본문 바로가기

코드에서 getattr 이 있어서 간단하게 찾아봄

 

결론적으로 getattr(object, attr) 와 실제 object.attr 로 부르는 것이 동일하다는 뜻

 

For example, getattr(x, 'foobar') is equivalent to x.foobar.

docs.python.org/3/library/functions.html#getattr

 

Built-in Functions — Python 3.9.2 documentation

Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order. abs(x) Return the absolute value of a number. The argument may be an integer, a floating poin

docs.python.org

사용예를 보면, 아래 처럼 속성함수이름 자체를 변수로 만들어서 호출하고 싶은 경우에 쓰면 되겠다.

왜냐하면 문자열로 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

 

Design and History FAQ — Python 3.9.2 documentation

Guido van Rossum believes that using indentation for grouping is extremely elegant and contributes a lot to the clarity of the average Python program. Most people learn to love this feature after a while. Since there are no begin/end brackets there cannot

docs.python.org

BJ.

희미한 구름위의 도시.. 아래는 무엇이 있을까 구글링해봐 ^^

Aleksandar Pasaric 님의 사진, 출처: Pexels

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.