ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python - 함수 인수
    Search: Python Python 2020. 9. 6. 21:29

     

    함수 선언에서 인수를 받을 때 '*'는 가변으로 받겠다는 선언

    >>> def f(v1, *v2, v3=None):
    ...     print("v1:{} v2:{} v3:{}".format(v1, v2, v3))
    ...
    >>> f(1,2,3)
    v1:1 v2:(2, 3) v3:None
    >>> f(1,2,3,4)
    v1:1 v2:(2, 3, 4) v3:None
    >>> f(1,2,3,4,v3=5)
    v1:1 v2:(2, 3, 4) v3:5
    >>>
    

     

    함수 호출에서 인수를 넣을 대 '*'는 자료구조 자체를 주지 않고 목록 내용 n개를 인수 n개로 주는 명령이다.

    >>> f([11,22,33,44,55], 99)
    v1:[11, 22, 33, 44, 55] v2:(99,) v3:None
    >>> f(*[11,22,33,44,55], 99)
    v1:11 v2:(22, 33, 44, 55, 99) v3:None
    >>>

     

    함수 선언에서 '**'는 인수 명명을 가변으로 하겠다는 선언이다

    >>> def f2(v1, **v2):
    ...     print("v1:{} v2:{}".format(v1, v2))
    ...
    >>> f2(1,kk=22, jj=33)
    v1:1 v2:{'kk': 22, 'jj': 33}
    >>>
    >>> f2(1)
    v1:1 v2:{}
    >>> f2(1, 22, 33)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: f2() takes 1 positional argument but 3 were given
    >>> f2(1, 22)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: f2() takes 1 positional argument but 2 were given
    >>>

     

    'Python' 카테고리의 다른 글

    Python - deque - temp  (0) 2020.09.08
    Python - Time Complexity  (0) 2020.09.07
    Python - reversed 클래스 함수  (0) 2020.09.07
    Python - generator expression  (0) 2020.09.07
    Python - 사칙연산 관련 '//' '**'  (0) 2020.09.06
    Python - bisect 함수  (0) 2020.09.06
    Python - iterable 유형  (0) 2020.09.06
    Python - product  (0) 2020.09.06

    댓글