반응형
파이썬 인수에 대해 알아보겠습니다.
파이썬을 활용하다 보면, 아래와 같은 함수 방식으로 인자를 주는 것을 종종 보셨을 겁니다.
# 1번 케이스
def function(*args):
...(이하 코드 생략)...
# 2번 케이스
def function2(**kwargs):
...(이하 코드 생략)...
이렇게 인수 이름 앞에 * 기호를 붙이면, 이 자리에 여러 개의 인수가 올 수 있습니다.
이것을 '가변 인수'라고 지칭합니다.
가변 인수의 특징은 정해진 개수만큼의 실인수를 전달해야할 필요가 없습니다.
가변 인수는 임의 개수의 인수를 받는 다는 것이 특징입니다.
아래 예를 통해 확인해보겠습니다.
def intsum(*ints):
sum = 0
for num in ints:
sum += num
return sum
# 인자 개수에 주목하자.
# 함수 호출 시 3개, 5개, 7개 각각 다른 개수의 인자가 전달됐다.
print(intsum(1, 2, 3)) # return: 6
print(intsum(5, 7, 9, 11, 13)) # return: 45
print(intsum(8, 9, 6, 2, 9, 7, 5, 8)) # return: 54
단, 가변 인수를 사용할 때 유념해야 할 특징이 있습니다.
가변 인수는 이후의 모든 인수를 다 포함하기 때문에 인수 목록의 마지막에 와야 합니다. 가변 인수 앞에는 일반 인수가 올 수 있지만, 뒤쪽에 올 수는 없습니다.
가변 인수 뒤에 일반 인수가 더 있으면 어디까지 가변 인수인지 잘 구분이 되지 않기 때문입니다.
가변 인수를 사용하는 대표적인 함수가 기본 출력문 print 함수입니다.
개수와 타입에 상관없이 문자열이든 숫자든 콤마로 구분하여 전달하면 출력이 되는 함수이죠.
출력 대상이 무엇이든, 어떤 형태이든 구분할 필요 없습니다.
def print(*args):
for arg in args:
...(이하 arg마다 출력하는 코드)...
print("파이썬, 신기한 언어") # 문자열 하나 출력
print(a, b) # a와 b 두개의 인자값을 출력
print("문자열", 1234, 3.14) # 문자열, 1234, 3.14 - 총 3개의 인자값을 출력
즉 print 함수는 모든 인수를 가변 인수로 전달받아 하나씩 순서대로 꺼내 문자열 형태로 바꾼 후 화면으로 출력합니다.
반응형
'파이썬 > 파이썬 기초' 카테고리의 다른 글
[python] 반복자(iterator)와 제너레이터(generator) (0) | 2023.04.05 |
---|---|
[python] finally 블록 - 파이썬의 자원정리 방법 (0) | 2023.03.05 |
[python] is 연산자란? (0) | 2023.03.05 |
[python] 키워드 가변 인수 (keyword variable arguments) (0) | 2023.03.05 |