파이썬에서 스위치 로직을 구현하려고합니다. 나는 다음과 같은 코드를 빌드 Replacements for switch statement in Python?을 바탕으로Pythonic switch within class
는:
I am case 2
이 사전인가 출력이 될
I am case 1
I am case 2
I am case 3
default
내가 기대 :
def func(string):
print(string)
class Switch:
def __init__(self):
pass
def first_switch(self, case):
return {
'1': func('I am case 1'),
'2': func('I am case 2'),
'3': func('I am case 3'),
}.get(case, func('default'))
switch = Switch()
switch.first_switch('2')
이 나에게 출력을 줄 것이다 -case-logic은 클래스 정의 외부에서만 사용 가능하거나 추가 코드가 누락 되었습니까? 모든 사전 키 - 값 쌍이 함수 호출에서 평가되는 것처럼 보입니다.
값은 함수를 호출 한 * 결과 *입니다. 왜 그냥 문자열을 저장하지 말고, 사전에서 빠져 나오면 무엇이든'func'을 호출하십시오. 또한'print '일 때'func'을 사용하는 것이 왜 싫은가요? – jonrsharpe
값을 저장하려면 func이 인수를 반환해야합니다. 지금 당신의 사전은 모두 Nones입니다. –