파이썬 리플렉션 (동적 클래스 인스턴스 생성 및 함수 호출)

2018-02-28 • pythonpython, reflection • 1 min read

리플렉션(Reflection)이란 런타임에서 프로그램의 구조를 파악하고 동적 객체 생성 및 함수 호출 등의 행위를 수행할 수 있게 해주는 장치 입니다.

이 포스트에서는 파이썬에서의 간단한 리플렉션 예제를 소개합니다.

class MyClass:
    my_var = 1

    def __init__(self):
        pass

    def my_fnc(self, arg):
        print('my_fnc({}) called.'.format(arg))


# 클래스 및 클래스변수 접근
my_class = globals()['MyClass']
print(my_class)
print(my_class.my_var)


# 객체 생성
my_inst = my_class()
print(my_inst)


# 함수 접근 및 호출
func = getattr(my_inst, 'my_fnc')
print(func)
func(2)