[python] 가변인자파이썬(python)2024. 7. 10. 17:55
Table of Contents
728x90
파이썬에서 가변인자란?
함수에 전달되는 인자의 개수가 정해져 있지 않을 때 사용합니다.
가변인자는 함수 정의 시 인자 앞에 *
또는 **
를 붙여 사용합니다. *args
는 위치 인자를 **kwargs
는 키워드 인자를 처리하는데 사용됩니다.
*args 를 사용한 가변 위치 인자
*args
는 함수에 전달되는 임의 개수의 위치 인자를 튜플 형태로 받아서 처리합니다.
# *args 를 사용한 함수 정의
def print_args(*args):
for arg in args:
print(arg)
# 함수 호출
print_args(1,2,3)
print_args("a", "b", "c")
출력 결과:
1
2
3
a
b
c
**kwargs 를 사용한 가변 인자 키워드
**kwargs
는 함수에 전달되는 임의 개수의 키워드 인자를 딕셔너리 형태로 받아서 처리합니다.
# **kwargs 를 사용한 함수 정의
def print_kwargs(**kwargs):
for key, value in kwargs.itmes():
print(f"{key}: {value}")
# 함수 호출
print_kwargs(name="Alice", age = 20)
print_kwargs(a=1, b=2, c=3)
출력 결과:
name: Alice
age: 30
a: 1
b: 2
c: 3
args와 *kwargs를 함께 사용하기
*args
와 **kwargs
를 함께 사용하여 위치 인자와 키워드 인자를 모두 처리할 수 있습니다.
# *args와 **kwargs를 함께 사용한 함수 정의
def print_args_kwargs(*args, **kwargs):
print("위치 인자:", args)
print("키워드 인자:", kwargs)
# 함수 호출
print_args_kwargs(1, 2, 3, name="Alice", age=30)
출력 결과:
위치 인자: (1, 2, 3)
키워드 인자: {'name': 'Alice', 'age': 30}
가변인자를 사용한 함수 예제
가변인자를 사용하여 다양한 기능을 구현할 수 있습니다. 예를 들어, 숫자의 합을 구하는 함수를 만들어 보겠습니다.
# *args를 사용한 합계 함수
def sum_numbers(*args):
return sum(args)
# 함수 호출
print(sum_numbers(1, 2, 3))
print(sum_numbers(10, 20, 30, 40))
출력 결과:
6
100
*를 사용한 위치 인자 언패킹
함수 호출 시에도 *
를 사용하여 위치 인자를 언패킹할 수 있습니다.
# 두 수를 더하는 함수 정의
def add(a, b):
return a + b
# 리스트를 언패킹하여 함수 호출
numbers = [1, 2]
print(add(*numbers))
**를 사용한 키워드 인자 언패킹
함수 호출 시에도 **
를 사용하여 키워드 인자를 언패킹할 수 있습니다.
# 사용자 정보를 출력하는 함수 정의
def print_user_info(name, age):
print(f"이름: {name}, 나이: {age}")
# 딕셔너리를 언패킹하여 함수 호출
user_info = {"name": "Alice", "age": 30}
print_user_info(**user_info)
출력 결과:
이름: Alice, 나이: 30
'파이썬(python)' 카테고리의 다른 글
[Python] 파이썬으로 Google 스프레드시트 연동하기 (2) | 2024.10.13 |
---|---|
[python] 가상환경 세팅(mac) (0) | 2024.08.12 |
[matplot] 한글 폰트 설정 및 폰트 선명하게 하기 (0) | 2024.08.04 |
[python] selenium 을 이용해서 Github 로그인하기 (0) | 2024.07.18 |
[python] isdigit() 메소드 숫자판별 (0) | 2024.07.08 |
@maneDataLab :: 마네의 데이터랩
배움에 즐거움을 느끼는 마네의 데이터랩 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!