Python 3에서는 중첩 인수의 구문과 동작이 크게 변경되었습니다. Python 2에서는 함수 정의 및 람다 표현식에서 튜플 압축 풀기를 사용하여 중첩된 인수를 정의할 수 있습니다. 그러나 이 기능은 혼란과 복잡성에 대한 우려로 인해 Python 3에서 제거되었습니다.
중첩된 인수를 활용하는 Python 2 코드를 Python 3 모듈로 컴파일하려고 할 때 , 제공된 컨텍스트에서 언급된 것과 같은 오류가 발생할 수 있습니다. 코드를 Python 3으로 성공적으로 포팅하려면 다음 지침을 따라야 합니다.
함수 정의:
튜플 압축 풀기 구문을 단일 매개변수로 바꾸고 수동으로 튜플 압축 풀기 함수 본문 내:
<code class="python">def add(self, sub_pred_obj): sub, pred, obj = sub_pred_obj # Remaining function body</code>
람다 표현식:
튜플 압축 해제를 방지하고 인덱싱을 사용하여 람다 내의 개별 요소에 액세스합니다.
<code class="python">lambda xy: (xy[1], xy[0])</code>
변환 도구 사용:
복잡한 기능의 경우 2to3, 현대화 또는 미래화와 같은 변환 도구를 사용하면 이러한 변경 사항을 자동으로 식별하고 제안할 수 있습니다.
PEP 3113은 튜플 매개변수 언패킹을 제거한 이유를 설명합니다. 이는 폐쇄, 디버깅 및 기타 언어 기능과 같은 여러 상황에서 혼란스럽고 구현 어려움을 초래할 수 있다는 우려를 언급합니다.
튜플 매개변수 압축 해제는 더 이상 지원되지 않습니다. Python 3에서 직접 지원되므로 유사한 기능을 달성하기 위한 대체 솔루션이 있습니다:
위 내용은 튜플 압축 풀기를 제거한 후 Python 3에서 중첩된 인수를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!