카테고리 없음

[파이썬] 매개변수(기본, 가변 등)

gameuiux 2024. 5. 26. 21:12
728x90
반응형

파이썬에서 함수의 매개변수(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}

 

이렇게 다양한 매개변수를 활용하면 함수의 유연성과 가독성을 높일 수 있다.

각 매개변수 타입은 특정 상황에 따라 적절히 선택하여 사용

728x90
반응형