해결 방법: 구문 오류: 위치 인수가 키워드 인수를 따릅니다.
Python에서 발생할 수 있는 오류는 다음과 같습니다.
SyntaxError : positional argument follows keyword argument
이 오류는 키워드 인수를 사용한 후 함수에서 위치 인수를 사용할 때 발생합니다.
둘 사이의 차이점은 다음과 같습니다.
위치 논증은 앞에 “핵심 단어”가 없는 논증입니다.
- 예: my_function(2, 2)
키워드 인수는 앞에 “키워드”가 있는 인수입니다.
- 예: my_function(a=2, b=2)
키워드 인수 뒤에 위치 인수를 사용하면 Python에서 오류가 발생합니다.
- 예: my_function(a=2, 2)
다음 예에서는 이 오류가 실제로 어떻게 발생할 수 있는지 보여줍니다.
예: 위치 인수가 키워드 인수 뒤에 옵니다.
Python에서 두 값을 곱한 다음 세 번째 값으로 나누는 다음 함수가 있다고 가정합니다.
def do_stuff (a,b):
return a*b/c
다음 예에서는 이 함수를 사용하는 유효한 방법과 잘못된 방법을 보여줍니다.
유효한 방법 #1: 모든 위치 인수
다음 코드는 모든 위치 인수와 함께 함수를 사용하는 방법을 보여줍니다.
do_stuff ( 4,10,5 )
8.0
Python은 각 함수 인수에 사용할 값을 정확히 알고 있기 때문에 오류가 생성되지 않습니다.
유효한 방법 #2: 모든 키워드 인수
다음 코드는 모든 키워드 인수와 함께 함수를 사용하는 방법을 보여줍니다.
do_stuff(a= 4 , b= 10 , c= 5 )
8.0
다시 말하지만, Python은 각 함수 인수에 사용할 값을 정확히 알고 있기 때문에 오류가 발생하지 않습니다.
유효한 방법 #3: 키워드 인수 앞에 위치 인수
다음 코드는 키워드 인수 앞에 사용된 위치 인수와 함께 함수를 사용하는 방법을 보여줍니다.
do_stuff( 4 ,b= 10 ,c= 5 )
8.0
Python은 값 4 가 인수 에 할당되어야 한다는 것을 알고 있기 때문에 오류가 생성되지 않습니다.
잘못된 방법: 키워드 인수 뒤의 위치 인수
다음 코드는 키워드 인수 다음에 위치 인수를 사용하여 함수를 사용하는 방법을 보여줍니다.
do_stuff(a= 4 , 10 , 5 )
SyntaxError : positional argument follows keyword argument
키워드 인수 뒤에 위치 인수를 사용했기 때문에 오류가 발생합니다.
구체적으로, 파이썬은 값 10 과 5 를 인수 b 또는 c 에 할당해야 하는지 모르기 때문에 함수를 실행할 수 없습니다.
추가 리소스
다음 튜토리얼에서는 Python의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
Pandas에서 KeyError를 수정하는 방법
수정 방법: ValueError: float NaN을 int로 변환할 수 없습니다.
해결 방법: ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.