위치 인수(positional arguments), 가변 인수(variable length arguments), 가변 키워드 인수 (variable length keyword arguments)

Ju Seol·2021년 6월 8일
0

1. 위치인수와 가변인수의 위치

def func_param_with_var_args(name, *args, age):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)

func_param_with_var_args("정우성", "01012341234", "seoul", 20)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-40-3aa69646d4e3> in <module>
      4     print("age=",end=""), print(age)
      5 
----> 6 func_param_with_var_args("정우성", "01012341234", "seoul", 20)

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

다음과 같이 가변인수를 위치인수보다 앞쪽에 위치시키면 keyword-only argument: 'age' TypeError가 나온다.

2. 가변 키워드 인수의 위치

def func_param_with_kwargs(name, age, **kwargs, address=0):
    print("name=",end=""), print(name)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)


func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")

---------------------------------------------------------------------------
File "<ipython-input-41-9d5049089a07>", line 1
    def func_param_with_kwargs(name, age, **kwargs, address=0):
                                                    ^
SyntaxError: invalid syntax

다음과 같이 가변 키워드 인수를 위치인수보다 앞에 위치시키면 SyntaxError: invalid syntax가 나온다.

정상적으로 했을때!

3. 위치 인수와 키워드 가변 키워드 인수의 위치

def mixed_params(name="아이유", *args, age, **kwargs, address):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)


mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")


---------------------------------------------------------------------------
File "<ipython-input-42-eda4128b7d25>", line 1
    def mixed_params(name="아이유", *args, age, **kwargs, address):
                                                       ^
SyntaxError: invalid syntax

다음과 같이 가변 키워드 인수를 위치인수보다 앞에 위치시키면 SyntaxError: invalid syntax가 나온다.

정상적으로 했을때!

이상적인 위치는?

위치인수 -> 가변인수 -> 키워드 인수 -> 가변 키워드 인수

profile
Hello!

0개의 댓글