태그된 제품에 대해 수수료를 받습니다.
파이썬에서 함수의 매개변수(parameter)는 함수가 호출될 때 전달되는 인수(argument)를 받기 위한 변수이다.
매개변수는 다양한 방식으로 정의될 수 있으며, 각각의 방식은 함수 호출 시 인수를 다루는 방법에 영향을 미친다.
기본 매개변수 (Default Parameters)
기본값을 가지는 매개변수를 정의하면, 함수 호출 시 해당 매개변수를 생략할 수 있다.
def greet(name, msg="Hello"):
print(f"{msg}, {name}")
greet("Alice") # 출력: Hello, Alice
greet("Bob", "Hi") # 출력: Hi, Bob
키워드 매개변수 (Keyword Arguments)
함수를 호출할 때 매개변수 이름을 지정하여 인수를 전달할 수 있다.
이는 가독성을 높이고, 매개변수의 순서를 바꿀 수 있게 한다.
def greet(name, msg):
print(f"{msg}, {name}")
greet(name="Alice", msg="Hello") # 출력: Hello, Alice
greet(msg="Hi", name="Bob") # 출력: Hi, Bob
가변 위치 인수 (Variable-Length Positional Arguments)
인수의 개수가 가변적인 경우, *args를 사용하여 위치 인수를 튜플 형태로 받을 수 있다.
def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3)) # 출력: 6
print(sum_all(4, 5, 6, 7, 8)) # 출력: 30
가변 키워드 인수 (Variable-Length Keyword Arguments)
인수의 개수가 가변적인 경우, **kwargs를 사용하여 키워드 인수를 딕셔너리 형태로 받을 수 있다.
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="New York")
# 출력:
# name: Alice
# age: 30
# city: New York
위치 전용 매개변수 (Positional-Only Parameters)
매개변수가 위치 인수로만 전달될 수 있게 하려면 / 기호를 사용(파이썬 3.8부터 지원)
def greet(name, /, msg="Hello"):
print(f"{msg}, {name}")
greet("Alice") # 출력: Hello, Alice
greet("Bob", msg="Hi") # 출력: Hi, Bob
# greet(name="Charlie") # 오류: TypeError
키워드 전용 매개변수 (Keyword-Only Parameters)
매개변수가 키워드 인수로만 전달될 수 있게 하려면 * 기호를 사용
def greet(*, name, msg="Hello"):
print(f"{msg}, {name}")
# greet("Alice") # 오류: TypeError
greet(name="Alice") # 출력: Hello, Alice
greet(name="Bob", msg="Hi") # 출력: Hi, Bob
혼합 사용
위의 다양한 매개변수를 혼합하여 사용할 수 있다.
이때, 위치 전용 매개변수, 가변 위치 인수, 키워드 전용 매개변수, 가변 키워드 인수 순으로 정의
def mixed_function(a, b=2, *args, c=3, **kwargs):
print(f"a={a}, b={b}, c={c}, args={args}, kwargs={kwargs}")
mixed_function(1)
# 출력: a=1, b=2, c=3, args=(), kwargs={}
mixed_function(1, 5, 6, 7, c=8, d=9, e=10)
# 출력: a=1, b=5, c=8, args=(6, 7), kwargs={'d': 9, 'e': 10}
이렇게 다양한 매개변수를 활용하면 함수의 유연성과 가독성을 높일 수 있다.
각 매개변수 타입은 특정 상황에 따라 적절히 선택하여 사용
태그된 제품에 대해 수수료를 받습니다.