1
저는 파이썬에서 초보자이지만 C에서 숙련 된 개발자입니다. 나는 C 코드에서 switch/case에 해당하는 스크립트를 작성했습니다. 사전 구현을해야했습니다. 기본적으로 사전은 문자/함수 쌍으로 설정됩니다. 키보드에서 문자를 읽습니다.파이썬 사전 동작
여기에 코드를입니다
...
def func1():
print "func1"
def func2(Val):
print "func2 " + Val
def func3(Val):
print "func3 " + Val
key=getch()
if key in ['s', 't', 'a']:
print key
{'a' : func1(),
's' : func2("Hello"),
't' : func3("Bye")
}[key]
...
내가지고있어 결과는 ehen 키 t이
func1
func2 Hello
func3 Bye
아닌 마지막 함수 호출
을 누르면입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
감사합니다 토비아스을. 논리가 작동합니다. 그러나, 나는 func1 대신 func1()을 사전에 넣어서 작동시켜야했습니다. 그것이 오래된 파이썬 버전인지 아닌지는 모르겠다. 이 람다 함수를 완전히 이해하기 위해서 조사해야만합니다 ... – Indy
예, 'func1'은 오타였습니다. 'func1()'에 정정. 비록 func1을 사용하면 실제로 람다없이 갈 수 있습니다 (업데이트 참조). 그럼이게 당신 문제를 해결 했나요? –
오, 그래, 해결되었습니다. 당신의 도움을 주셔서 감사합니다! – Indy