> 백엔드 개발 > 파이썬 튜토리얼 > 이름을 지정하거나 지정하지 않으려면: Python에서 언제 람다에 이름을 할당해야 합니까?

이름을 지정하거나 지정하지 않으려면: Python에서 언제 람다에 이름을 할당해야 합니까?

Linda Hamilton
풀어 주다: 2024-11-27 14:43:11
원래의
784명이 탐색했습니다.

To Name or Not to Name: When Should You Assign Names to Lambdas in Python?

Python에서 Lambda의 이름을 지정해야 합니까?

Lambda 표현식은 Python에서 익명 함수를 정의하는 간결하고 편리한 방법을 제공합니다. 그러나 코드 재사용 및 특정 기능을 위해 함수 내에서 람다에 이름을 할당하고 싶은 유혹이 있는 경우가 많습니다.

람다 이름 지정에 대한 비판

이 방법이 편리해 보일 수 있지만 일반적으로 Python이 아닌 것으로 간주되며 PEP8의 권장 사항에 어긋납니다. PEP8에서는 다음과 같이 설명합니다.

"람다 표현식을 식별자에 직접 바인딩하는 할당 문 대신 항상 def 문을 사용하세요."

이 권장 사항의 근거는 람다를 함수:

  • 명확하고 명시적인 이름 제공: 명명된 람다와 달리 def 문은 함수를 의미 있는 식별자와 명시적으로 연결합니다.
  • 역추적 및 문자열 표현에 도움: 이름이 지정된 함수는 오류 메시지와 문자열 표현에 특정 이름을 표시하여 가독성을 높입니다.
  • 람다의 주요 이점 제거: 더 큰 표현식에 익명 함수를 포함하는 기능은 할당할 때 중복됩니다.

질문에 제공된 예제 함수를 고려하세요.

def fcn_operating_on_arrays(array0, array1):
    indexer = lambda a0, a1, idx: a0[idx] + a1[idx]
    
    # ...
    indexed = indexer(array0, array1, indices)
    # ...
로그인 후 복사

람다라는 이름을 사용하는 경우 별도의 명시적인 이름을 정의하는 것이 더 파이썬적입니다. 함수:

def index_array(a0, a1, idx):
    return a0[idx] + a1[idx]

def fcn_operating_on_arrays(array0, array1):
    
    # ...
    indexed = index_array(array0, array1, indices)
    # ...
로그인 후 복사

결론

람다에 이름을 할당하는 것이 특정 상황에서는 유용해 보일 수 있지만 권장되지는 않습니다. 대신 명확성, 가독성 및 모범 사례 준수를 유지하기 위해 명시적 함수 정의를 사용하는 Python 원칙을 따르세요.

위 내용은 이름을 지정하거나 지정하지 않으려면: Python에서 언제 람다에 이름을 할당해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿