Function argument(parameter) - Python

1. Keyword Arguments

넘겨주는 파라미터의 순서가 바뀌어도 상관없고 가독성 향상 가능

2. Mixing positional arguments and keyword arguments

positional arguments와 keyword arguments를 혼용하여 사용도 가능
중요한 점은, keyword arguments는 순서 바뀌어도 상관없으나, positional argument부분은 순서를 지켜줘야 함

3. Parameter Default Value

함수의 parameter에 default 값을 정의해줄 수 있음
값이 넘겨지지 않으면, default 값을 자동으로 넘기게 됨
다만, 여기서 주의할 점은, default 값이 정의된 parameter가 default 값이 정의되지 않은 parameter보다 먼저 위치하면 안됨

4. *varargs**kwargs

def foo(a, b, *varargs, **kwargs):
   print(a, b, varargs, kwargs)

## Call foo
foo(2, 9, 12, 34, x=3, name="bob")

// output
2 9 (12, 34) {'x': 3, 'name': 'bob'}

*varargs를 통해서, 넘겨지는 parameter 수에 상관없이 tuple 형식으로, positional argumnets를'()'에 묶어서 전달할 수 있음
**kwargs를 통해서, 넘겨시는 parameter 수에 상관없이 dictionary 형식으로, keyword arguments를 '{}'에 묶어서 전달할 수 있음

  • 이 방식의 한계는 variable length keyword arguments slot 전에, 반드시 모든 regular argument slots이 채워져서 전달되어야 하는 점임

5. Keyword-Only Arguments

  • keyword argument만 받아들이고 나머지는 throw exception
    1. Non-Default Keyword-Only Arguments와 2. Default Keyword-Only Arguments 2가지가 존재
def sortwords(*words,  case_sensitive=True):
     . . . 
 sortwords("bob", "jack", "rose",  case_sensitive=False)
// 실제 적용 예시
def add(a, b, *more, print_result=True):
     result = a + b + sum(more)
     if print_result:
         print("sum of {} {} {} is {}".format(a, b, ' '.join(map(str, more)), result))
     return result
// output
>> add(1, 3, 9) 
sum of 1 3 9 is 13 
13 
>> add(2, 9, 12, 3, print_result=False) 
26 
>> 

좋은 웹페이지 즐겨찾기