파이썬(Python) Function parameter 이해

이정민·2021년 5월 14일
0

Python function(함수)에서 매개변수의 종류

default value parameter
-> def human(a, b = "홍길동") 에서 b를 말함

non-default value parameter
-> def human(a, b)

positional arguments (위치인수)
-> non-default value parameter를 말함

variable length arguments (가변인수)
-> def human(a, b, args) 에서 args를 말함

variable length keyword arguments (가변 키워드 인수)
-> def human(a, b, ** kwargs)에서 kwargs를 말함

default value parameter 와 non-default value parameter

코드를 실행하면 다음과 같은 에러가 나타난다.

SyntaxError: non-default argument follows default argument

이러한 현상은 default value parameter, 즉[name="Tori"]를 먼저 사용했기 때문이다.
10이라는 값이 name인수와 age인수 중에 어디에 들어가야 할지 알지 못해서 일어나는 현상같다.

순서를 바꿨을때는 에러가 나타나지 않는다.

위치인수(positional arguments)와 가변인수(variable length arguments)

위쪽의 코드를 실행시켰을때 오류가 뜬다.

TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'

애러가 나는 이유는 args가 정해지지 않은 가변적인 인수이기 때문이다. args가 age가 가져야할 20까지 전부 가져가버려서 애러가 뜬다고 생각한다.

name=정우성
args=('seoul', 20)
age=01012341234

age를 앞으로 보내주면 제대로 출력된다.

default value parameter와 가변 키워드 인수(variable length keyword arguments)

위쪽 코드가 또 오류가 뜬다.(구문오류라고 뜬다.)

SyntaxError: invalid syntax

이 문장은 default parameter보다 ** kwargs가 먼저 나와서 오류가 떳다 구문오류라서 그냥 외워야 될듯 하다.

위치인수와 키워드, 가변 키워드 인수

profile
안녕하세요.

0개의 댓글