본문 바로가기
프로그래밍/Pyton.

[Python] Switch Case가 없어요

by _Chavi 2022. 6. 13.

파이썬에 Switch Case구문이 없다... 때문에 JAVA의 invoke와 비슷한 getattr() 메서드를 활용하여 비슷한 동작을 하도록 구현하였다.

 

예제
class Switch:
    def __init__(self):
        self.do_someting()

    def do_switch(self, _type):
        # do_case_? 형태의 메서드를 호출
        getattr(self, 'do_case_' + _type, lambda: 'Switch Fail!!')()
    
    def do_case_a(self):
        print('Call case A')
    
    def do_case_b(self):
        print('Call case B')

위와 같이 클래스를 생성한후, do_switch메서드 호출과 파라메터를 통해 do_case로 시작되는 메서드 들을 분기하여 호출한다

param = 'a'
Switch().do_switch(param)
# than print 'Call case A'

param = 'b'
Switch().do_switch(param)
# than print 'Call case B'

 

 

참고 : 링크

댓글