>백엔드 개발 >파이썬 튜토리얼 >Python 함수 정의에서 필수 인수가 기본 인수보다 앞에 있어야 하는 이유는 무엇입니까?

Python 함수 정의에서 필수 인수가 기본 인수보다 앞에 있어야 하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-31 22:24:02585검색

Why must required arguments precede default arguments in Python function definitions?

기본 인수가 필수 인수보다 앞에 올 수 없는 이유는 무엇입니까?

Python에서는 기본 인수가 기본 인수 뒤에 오면 SyntaxError가 발생합니다. 함수의 매개변수 목록. 이 제한은 인터프리터가 인수 값을 명확하게 해석하도록 하기 위해 존재합니다.

다음 함수 정의를 고려하세요.

def fun1(a="who is you", b="True", x, y):
    print a, b, x, y

이 코드는 필수 매개변수 x와 y가 뒤따르기 때문에 SyntaxError를 발생시킵니다. 기본 매개변수 a 및 b.

필수 인수가 우선합니다

필수 매개변수는 항상 함수의 매개변수 목록에서 기본 매개변수 앞에 배치되어야 합니다. 필수 매개변수는 필수이고, 기본 매개변수는 선택사항이기 때문입니다. 구문상, 인터프리터는 어떤 값이 어떤 인수와 혼합되어 있는지 판단할 수 없습니다.

다음 코드는 필수 매개변수 x 및 y는 기본 매개변수 a 및 b 앞에 배치됩니다.

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y

키워드 인수

키워드 인수를 사용하면 인수가 있는 함수를 순서에 관계없이 호출할 수 있습니다. 그러나 함수의 매개변수 목록에 있는 매개변수의 순서는 여전히 어떤 값이 어떤 인수에 할당되는지를 결정합니다.

예를 들어 위 함수 정의의 경우:

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y

다음 코드는 다음과 같습니다. 유효:

fun1("ok a", "ok b", 1)  # 1 is assigned to x, "ok a" to a, "ok b" to b, "True" to y

그러나 매개변수가 기본값으로 선언되지 않은 경우:

def fun1(x, y, a, b):
    print a, b, x, y

다음 코드는 TypeError를 발생시킵니다.

fun1("ok a", "ok b", 1)  # 3 arguments instead of 4

따라서 , 기본 인수는 선택적 인수를 허용하거나 키워드 인수를 사용할 때 누락된 인수를 건너뛰는 데 유용합니다.

위 내용은 Python 함수 정의에서 필수 인수가 기본 인수보다 앞에 있어야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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