함수 인자(Arguments)는 함수로 전달되는 정보입니다. 예를 들어, 레시피에서 재료처럼 생각할 수 있습니다.
def 인사말(이름):
print("안녕하세요,", 이름)
인사말("지수") # '지수'가 인자
안녕하세요, 지수
args
는 파이썬 함수에서 사용되는 가변 인자(variable argument) 입니다. 이는 함수에 임의의 개수의 인자를 전달할 수 있게 해줍니다. def 함수명(*args):
*
기호는 여러 개의 인자를 받을 수 있음을 나타냅니다.def sum_numbers(*args):
return sum(args)
# 함수 호출
print(sum_numbers(10, 15, 20)) # Output: 45
sum_numbers
함수는 여러 숫자를 받아 그 합을 반환합니다. *args
를 사용하여 여러 개의 숫자를 인자로 전달할 수 있습니다.
kwargs
는 파이썬에서 키워드 인자(keyword arguments)의 집합을 나타내는 데 사용됩니다. 이것은 함수에 키워드 인자를 사전 형태로 전달할 수 있게 해주는 메커니즘입니다.def 함수명(**kwargs):
**
기호는 키워드 인자들을 사전 형태로 받을 수 있음을 나타냅니다.def greet_me(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# 함수 호출
greet_me(name="민준", message="안녕하세요")
# Output:
# name: 민준
# message: 안녕하세요
greet_me
함수는 키워드 인자로 전달된 모든 값들을 출력합니다. **kwargs
를 사용하여 여러 개의 키워드 인자를 사전 형태로 받습니다.
*args
와 **kwargs
를 함께 사용하면, 함수에 가변 개수의 위치 인자와 키워드 인자를 동시에 전달할 수 있습니다. 함수 정의 시 *args
를 먼저 명시한 후, **kwargs
를 사용합니다.
이 함수는 사용자의 기본 정보와 추가 정보를 받아 프로필을 생성합니다.
def create_user_profile(name, email, *args, **kwargs):
profile = {
"name": name,
"email": email,
"interests": args,
"additional_info": kwargs
}
return profile
# 함수 호출 예시
profile = create_user_profile("김지민", "jimin@example.com", "여행", "독서", age=29, city="서울")
print(profile)
# Output:
# {
# 'name': '김지민',
# 'email': 'jimin@example.com',
# 'interests': ('여행', '독서'),
# 'additional_info': {'age': 29, 'city': '서울'}
# }
create_user_profile
함수는 사용자의 이름(name)과 이메일(email)을 필수 인자로 받습니다. 사용자의 관심사(*args)와 추가 정보(**kwargs)는 선택적으로 받을 수 있습니다. 이 정보들을 모아서 하나의 사전으로 반환합니다.
주의사항
*args
를 먼저, 그 다음에 **kwargs
를 위치시킵니다.*args
는 위치 기반 인자로, **kwargs
는 키워드 인자로 처리됩니다. 함수 내부에서는 args
는 튜플로, kwargs
는 딕셔너리로 접근할 수 있습니다.