기본 인수가 필수 인수보다 앞에 올 수 없는 이유는 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!