>  기사  >  백엔드 개발  >  Python 3에서 중첩 인수를 정의할 때 구문 오류가 발생하는 이유는 무엇입니까?

Python 3에서 중첩 인수를 정의할 때 구문 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-05 19:21:02202검색

Why Do I Get a Syntax Error When Defining Nested Arguments in Python 3?

Python 3: 중첩 인수를 정의하는 동안 구문 오류

오류 컨텍스트

개발자는 다음으로 인해 Python 코드를 모듈로 컴파일할 때 구문 오류가 발생할 수 있습니다. 중첩된 인수의 정의를 시도했습니다. "모듈 실행" 옵션을 사용하여 IDLE에서 동일한 코드가 원활하게 실행되는 동안 배포 중에 다음과 유사한 오류가 발생할 수 있습니다.

SyntaxError: invalid syntax
File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9
def add(self, (sub, pred, obj)):
                  ^

원인

이 오류는 제거로 인해 발생합니다. PEP 3113에 설명된 대로 Python 3에서 튜플 인수 풀기.

해결책

이 오류를 수정하려면 튜플을 단일 매개변수로 전달하고 수동으로 압축을 풀도록 코드를 수정해야 합니다. 영향을 받는 코드 def add(self, (sub, pred, obj)):는 다음과 같이 수정되어야 합니다.

def add(self, sub_pred_obj):
    sub, pred, obj = sub_pred_obj

람다 함수의 경우 일반적으로 압축을 완전히 풀지 않는 것이 좋습니다. 다음을 사용하는 대신 다음을 사용하는 것이 좋습니다.

lambda (x, y): (y, x)

자동 도구

lambda xy: (xy[1], xy[0])
이 문제를 쉽게 감지하고 수정하기 위해 개발자는 프로그램을 활용할 수 있습니다. "2to3", "현대화" 또는 "미래화"와 같은 방법으로 Python 2.x 코드를 Python 3.x로 리팩터링하여 중첩 인수 처리에 적합한 솔루션을 효과적으로 식별하고 제안합니다.

위 내용은 Python 3에서 중첩 인수를 정의할 때 구문 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PyTorch의 eq와 ne다음 기사:PyTorch의 eq와 ne