2013-06-09 3 views
4

을 사용하여 stackoverflow 또는 프로그래머에 게시할지 여부를 알 수 없으므로 잘못된 값을 선택하면 유감스럽게 생각합니다. 나는 또한 파이썬에 매우 익숙하다. 그래서 나는 뭔가를 놓칠지도 모른다.함수 내에서 람다 대신

이 중 어느 쪽이 더 정확한가? 에서 것과 같이, 어느 것이 최선의 관행입니다. 둘 다 있습니까? 그렇다면 어느 것을 사용해야합니까?

1) 람다 : 함수

def hello_world(): 
    def hello(): 
     print("Hello World") 
    server_thread = threading.Thread(target=hello) 
+2

모두 완벽하게 괜찮습니다. 맛의 문제. – kirelagin

+4

표현식이 복잡하고 온라인 이외의 문자로 작성되어야한다면 'def'를 사용하십시오. 그렇지 않으면'람다 '(적어도 이것은 보통 내가 쓰는 방법이다). – Bakuriu

+3

부작용 (즉, 출력)이 있기 때문에'람다 '를 사용하지 않을 것이고 나는 람다 함수가 가지지 않을 것으로 기대하는 경향이 있습니다. – DSM

답변

1

내부

def hello_world(): 
    server_thread = threading.Thread(target=lambda: print("Hello World")) 

2) 기능 모두 완벽하게 허용.

중첩 된 함수는 더 복잡한 것으로 진화 할 수 있지만 람다는 영원히 단일 표현식으로 제한된다는 것을 명심하십시오.