ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 - 인수(argument)
    python 2021. 3. 16. 15:40

    위치인수 positional argument

     

    함수에 인수를 순서대로 넣는 방식을 위치 인수(positional argument)라고 한다. 즉, 인수의 위치와 갯수가 정해져 있다.

     

    ex)
    >>> print(10, 20, 30)
    10 20 30

     

     

     

    언패킹 Unpacking

     

    인수를 순서대로 넣을 때 리스트나 튜플을 사용할 수 있다. 리스트 또는 튜플 앞에 *(애스터리스크)를 붙여 함수에 넣으면 된다. (언패킹, 말 그대로 리스트의 포장을 푼다는 뜻이다.)

     

    >>> def print_number(a, b, c):
    ...     print(a)
    ...     print(b)
    ...     print(c)
    ...
    >>> x = [10, 20, 30]
    >>> print_number(*x)
    10
    20
    30

     

    리스트 변수 대신 리스트 앞에 *를 붙여도 똑같이 동작한다.

     

    >>> print_number(*[10, 20, 30])
    10
    20
    30

     

     

    가변 인수 함수 variable argument

     

    위치 인수와 리스트 언패킹 등의 기능들은 인수의 개수가 정해지지 않은 가변 인수(variable argument)에 사용한다. 즉, 같은 함수에 인수를 여러개 넣을 수도, 넣지 않을 수도 있다.

    가변 인수 함수는 매개변수 앞에 *를 붙여서 만든다.

     

    def 함수이름(*매개변수):
        코드
    >>> def print_all(*args):
    ...     return args
    ...
    >>> print_all(10)
    (10,)
    >>> print_all(10, 'hello')
    (10, 'hello')
    >>> a = [1, 2, 3, 4]
    >>> print_all(a, 10)
    ([1, 2, 3, 4], 10)

     

    고정 인수와 가변 인수를 함께 사용할 때는, 고정 매개변수를 먼저 지정하고, 그 다음 매개변수에 *를 붙이면 된다.
    def 함수이름(매개변수, *매개변수):
        코드

     


    키워드 인수 keyword argument

     

    함수에 인수를 넣고 매번 인수의 순서와 용도를 기억하기는 불편하다. 그래서 파이썬에서는 키워드 인수(keyword argument)라는 기능을 제공한다. 키워드 인수는 인수에 이름(키워드)을 붙이는 기능이다. 키워드=값 형식으로 사용한다.

     

    def personal_info(name, age, address):
        print('name :', name)
        print('age : ',  age)
        print('address : ', address)
    
    personal_info(name = 'edward', age = 20, address = 'seoul')
    #실행 결과
    name : edward
    age :  20
    address :  seoul

     

    딕셔너리 언패킹을 통해 딕셔너리를 사용해서 키워드 인수로 값을 넣을 수도 있다. 딕셔너리 앞에 **를 붙여서 함수에 넣어준다.

     

    x = {'name': '홍길동', 'age': 30, 'address': '서울시 용산구 이촌동'}
    personal_info(**x)
    #실행 결과
    name : 홍길동
    age :  30
    address :  서울시 용산구 이촌동

     

    애스터리스크를 두번 사용하는 이유

    딕셔너리는 key-value 형태로 값이 저장되어 있기 때문에 *를 한 번만 사용한다면 key값이 출력된다.

     


    매개변수 초깃값

     

    함수를 호출할 때 인수를 넣지 않고 생략하기 위해서는 매개변수에 초깃값을 지정하면 된다. 매개변수=값 형식으로 지정한다.

     

    def 함수이름(매개변수=값):
        코드
    초깃값이 지정된 매개변수 다음에는 초깃값이 없는 매개변수가 올 수 없다.

    'python' 카테고리의 다른 글

    파이썬 - 이터레이터  (0) 2021.03.18
    파이썬 - 람다 함수  (0) 2021.03.16
    클래스 - 메서드 오버라이딩과 다형성  (0) 2021.03.11
    클래스 - 클래스 관계  (0) 2021.03.11
    객체 지향 프로그래밍  (0) 2021.03.05
Designed by Tistory.