[Python] 함수에서 위치 인수와 키워드 인수 사용하기

    함수에서 위치 인수, 키워드 인수를 사용하는 방법과 리스트, 딕셔너리 언패킹을 황ㄹ용하는 방법을 알아보자.

     

     

    print(10, 20, 30)

    >>>10, 20, 30

     

     

    위치 인수를 사용하는 함수를 만들고 호출한다.

     

    def print(numbers(a, b, c):
        print(a)
        print(b)
        print(c)

    fprint_numers에 숫자 세 개를 넣으면 각 줄에 숫자가 출력 된다.

     

     

     

     

     

    언 패킹 사용하기

    x = [10, 20, 30]
    print_numbers(*x)

    >>>10, 20, 30

     

    x라는 리스트를 print에 넣었을 뿐인데 정상적으로 출력 되었다.

    언패킹이란 리스트(튜플)앞에 * 붙이면 print_numbers(10, 20, 30)과 똑같은 동작이 작동 된다.

    다른 말로는 리스트의 포장을 푼다는 뜻이 된다.

     

     

    이때, 함수의 규칙상 개수가 다르면 함수 호출을 할 수가 없다.

     

     

     

    가변 인수 함수 만들기

    def print_numbers(*args):
        for arg in args:
        	print(arg)

    언패킹을 어디서 사용할 까? 인수의 개수가 정해지지 않은 가변 변수에 많이 사용한다.

    같은 함수에 인수 한 개를 넣을 수도 있고 열 개를 넣을 수도 있다.

     

    print_numbers 함수에 숫자를 넣어서 호출해본다면, 숫자를 한 개 넣으면 한 개 출력,

    열 개 넣으면 열 개가 출력된다. 즉 넣은 숫자 개수만큼 출력되는걸 봀 수 있다.

     

    이렇게 함수에 인수 여러개를 직접 넣어도 되고, 리스트(튜플) 언패킹을 사용해도 된다.

     

    이를 암묵적 오버로딩이라고 부른다.

     

     

    키워드 인수 사용하기

    def personal_info(name, age, address):
        print('이름 : ', name)
        print('나이 : ', age)
        print('주소 : ', address)

    기본적인 함수를 사용 할 때, 인수의 순서와 용도를 함께 외워서 사용한다.

    이제 이렇게 사용할 경우, 이름, 나이, 주소라는 순서를 알아야 사용 할 수가 있다.

     

    그러나 파이썬은 인수의 순서와 용도를 매번 기억하지 않도록 키워드 인수라는 기능을 제공한다.

    인수에 이름을 붙이는 기능인데 키워드 = 값 형식으로 사용한다.

     

    personal_info(name='홍길동', age=30, address='서울시 용산구 이촌동')

    함수를 호출할 때 인수의 용도가 명확하게 보여서 키워드에 해당하는 값이 들어가는 것을 볼 수 있다.

    순서를 지키지 않고 값이 들어간다는 장점이 있다.

     

     

    키워드 인수와 딕셔너리 언패킹 사용하기

    def personal_info(name, age, address):
       print('이름 : ', name)
       print('나이 : ', age)
       print('주소 : ', address)
    
    x = {'name' : '홍길동', 'age':30, 'address':'서울시 용산구 이촌동'}
    prersonal_info(**x)

    딕셔너리 앞에 **(애스터리스크)를 두개 붙여서 함수에 넣어준다.

    딕셔너리의 '키워드':값 형식으로 인수를 저장하고, 앞에 ** 붙여서 함수를 넣는다면 함수가 작동 되는 것을 볼 수 있다.

    이 때 딕셔너리의 키워드(키)값은 반드시 문자열 형태여야 한다.

     

    딕셔너리 언패킹을 사용할 때는 함수의 매개변수 이름과 딕셔너리의 키 이름이 가타야 한다.

    또한, 매개변수 개수와 딕셔너리 키의 개수도 같아야 한다.

     

    만약 이름과 개수가 다르면 함수를 호출 할 수 없다.

     

     

    매개변수에 초기값 지정하기

    def personal_info(name, age, address='비공개')
    
    
    personal_info('홍길동', 30)

    함수를 호출 할 때 항상 인수에 값을 넣어서 전달했다. 그러나 인수를 생략할 수도 있다.

    함수의 매개변수에 초기값을 지정하면, 매개변수 = 값 형식으로 저장된다.

     

    매개변수를 생략 된 상태로 받을 경우, 초기값이 작동 되는 원리이다.

    그러나 초기값을 지정할 때 한 가지 주의할 점이 있다.

     

    초기값을 지정된 매개변수는 다음에는 초기값이 없는 매개변수가 올 수가 없다.

    즉, 초기값 있는 매개변수는 항상 오른쪽에 존재해야 한다.

    반응형

    'Language > Python' 카테고리의 다른 글

    [Python] 변수의 사용범위 알아보기  (0) 2020.10.15
    [Python] 람다 표현식 사용하기  (0) 2020.10.15
    [Python] 파일사용하기  (0) 2020.10.14
    [Python] 문자열 응용하기  (0) 2020.10.14
    [Python] 2차원 리스트 사용하기  (0) 2020.10.14

    댓글

    Designed by JB FACTORY