자기계발/Python

[Python] 기본11. 함수(가변, 기본, 키워드 매개변수)

호등 2022. 3. 6. 11:48
반응형

오늘 포스팅에선 Python 함수의 매개변수에 대해 공부할 것이다.

 

함수에 넣는 인자를 매개변수라고 부르는데 

가변 매개변수, 기본 매개변수, 키워드 매개변수 등 종류가 다양하다.

가변 매개변수

원래 함수를 선언할 땐 매개변수와 함수를 호출할 때의 매개변수가 같아야 한다.

하지만 여태 사용했던 print( )를 보면 매개변수를 원하는만큼 입력할 수 있었다.

 

이와 같이 매개변수를 원하는 만큼 입력 받을 수 있는 함수를 가변 매개변수라고 부른다.

 

def 함수 이름(매개변수, 매개변수, ... , *가변 매개변수):

□□□□ 문장

 

 

가변 매개변수를 사용하는데 2가지 제약사항이 있다.

 

1. 가변 매개변수 뒤에는 일반 매개변수가 오지 못한다.

: 어디까지가 가변 매개변수인지 알기 힘들기 때문에

 

2. 가변 매개변수는 하나만 사용이 가능하다.

 

#가변 매개변수 함수의 예

def print_n_times(n, *values):
	#n번 반복하는 코드
    for i in range(n):
    	#values값은 리스트처럼 활용한다.
        for value in values:
            print(value)
            
        print()

print_n_times(3,"안녕하세요", "즐거운", "파이썬프로그래밍")
'''
출력결과

안녕하세요
즐거운
파이썬프로그래밍

안녕하세요
즐거운
파이썬프로그래밍

안녕하세요
즐거운
파이썬프로그래밍
...

기본 매개변수

다음은 print( ) 함수의 자동 완성 기능으로 나오는 설명이다.

print(value, ..., sep= ' ', end='\n', file=sys.stdout, flush=False)

 

가장 앞에 있는 value가 앞에서 말한 '가변 매개변수'이다. 분명 앞에선 가변 매개변수 뒤에 일반 매개변수가 올 수 없다고 했는데 print( )함수의 경우를 보니깐 다르다. 이 뒤에 오는 함수는 '매개변수=값'의 형태로 들어가는 기본 매개변수라고 부른다. 기본 매개변수는 아무것도 입력하지 않았을 경우 디폴트값을 지정해주는 역할을 한다.

 

역시나 기본 매개변수에도 제약이 존재한다.

* 기본 매개변수 뒤엔 일반 매개변수가 올 수 없다.

 

def print_n_times(value, n=2):
    
    for i in range(n):
        print(value)

print_n_times("안녕하세요") #n의 디폴트값으로 2를 지정해주어서 따로 지정안하면 2번출력된다.

'''
출력결과

안녕하세요
안녕하세요
'''

기본 매개변수를 이해할 수 있는 간단한 코드 예시이다.


키워드 매개변수

def print_n_times(*values, n=2):
    
    for i in range(n):
        for value in values:
            print(value)
            
        print()

print_n_times("안녕하세요","호등입니다.", 3)

위와 같은 코드를 실행했을때 어떤 결과가 나올지 예측해보자.

1) ["안녕하세요", "호등입니다"]가 3번 출력됨

2) ["안녕하세요", "호등입니다", 3]이 2번 출력됨

 

위 코드를 실행하면 2)와 같이 출력된다.

가변 매개변수가 우선이 되어 "안녕하세요"부터 3까지 value로 들어가기 때문이다.

파이썬엔 이런 상황을 대비하기 위해 키워드 매개변수 라는 기능을 만들었다.

 

1)번과 같이 입력하고 싶으면 print_n_times("안녕하세요" ,"호등입니다.", n=3) 으로 입력하면 해결된다.

n=3처럼 매개변수 이름과 값을 지정하는 매개변수키워드 매개변수라고 한다.

 

 

반응형