본문 바로가기
Python/Python FAQ

Python 파이썬에서는 멀티라인 람다 함수를 지원하지 않는 이유는 무엇인가요?, No Multiline Lambda in Python: Why not?

by 베타코드 2023. 10. 26.
반응형

질문


I've heard it said that multiline lambdas can't be added in Python because they would clash syntactically with the other syntax constructs in Python. I was thinking about this on the bus today and realized I couldn't think of a single Python construct that multiline lambdas clash with. Given that I know the language pretty well, this surprised me.

Now, I'm sure Guido had a reason for not including multiline lambdas in the language, but out of curiosity: what's a situation where including a multiline lambda would be ambiguous? Is what I've heard true, or is there some other reason that Python doesn't allow multiline lambdas?


답변


Guido van Rossum (파이썬의 창시자)은 이 정확한 질문에 대해 오래된 블로그 글에서 직접 대답합니다.
기본적으로, 그는 이론적으로 가능하다고 인정하지만, 어떤 제안된 해결책도 파이썬스러운 것은 아니라고 인정합니다:

"하지만 이 퍼즐에 대한 어떤 제안된 해결책의 복잡성은 내게 있어서 엄청납니다: 이는 파서(혹은 보다 정확하게는 렉서)가 들여쓰기에 민감한 모드와 민감하지 않은 모드 사이를 왔다갔다 할 수 있도록 하고, 이전 모드와 들여쓰기 수준의 스택을 유지하는 것을 요구합니다. 기술적으로 모든 것이 해결될 수 있습니다(이미 일반화될 수 있는 들여쓰기 수준의 스택이 이미 존재합니다). 하지만 이 모든 것이 복잡한 루브 골드버그 장치라는 내 직감을 없애주지는 않습니다."

반응형

댓글