파라미터(parameter)는 함수나 메서드를 정의할 때 사용되는 입력 변수이다. 함수에 전달된 데이터를 처리하기 위해 사용되며, 함수 내부에서 해당 파라미터로 작업을 수행하게 된다.
파라미터와 비슷한 개념으로 인자(argument)가 있는데, 두 용어는 약간의 차이가 있다:
def greet(name): # 'name'은 파라미터
print(f"Hello, {name}!")
greet("Alice") # 'Alice'는 인자
greet
함수는 하나의 파라미터 name
을 받고, 전달된 인자를 사용하여 메시지를 출력."Alice"
라는 인자가 전달되었으며, 이 값이 함수 내부에서 name
이라는 파라미터로 사용됨.위치 기반 파라미터는 함수 호출 시 인자가 파라미터의 순서대로 전달되는 방식이다.
def add(a, b): # a, b는 위치 기반 파라미터
return a + b
result = add(3, 5)
print(result) # 8
add
함수는 두 개의 위치 기반 파라미터 a
와 b
를 받음.add(3, 5)
에서 3
은 a
로, 5
는 b
로 전달됨.키워드 파라미터는 함수 호출 시 인자의 이름을 명시하여 전달할 수 있는 방식이다. 순서를 지키지 않아도 된다.
def introduce(name, age):
print(f"My name is {name} and I am {age} years old.")
# My name is Alice and I am 25 years old.
introduce(age=25, name="Alice")
introduce
함수는 name
과 age
라는 파라미터를 받음.introduce(age=25, name="Alice")
에서 인자의 이름을 명시했기 때문에 순서와 상관없이 전달 가능.파라미터에 기본값을 지정하면, 인자를 전달하지 않을 때 그 기본값이 사용된다.
def greet(name, greeting="Hello"): # greeting은 기본값을 가짐
print(f"{greeting}, {name}!")
greet("Alice") # 기본값인 "Hello"가 사용됨
greet("Bob", "Hi") # 기본값 대신 "Hi"가 사용됨
greeting
파라미터는 기본값 "Hello"
를 가짐.greeting
은 기본값을 사용하지만, 인자를 전달하면 해당 값이 사용됨.*args
*args
를 사용하여 가변 개수의 인자를 받을 수 있다. 여러 개의 인자를 튜플 형태로 처리할 수 있다.
def sum_all(*args): # *args는 여러 개의 인자를 받음
return sum(args)
print(sum_all(1, 2, 3)) # 6
print(sum_all(4, 5, 6, 7)) # 22
*args
는 함수가 호출될 때 전달된 여러 인자를 튜플로 받아 처리함.sum_all(1, 2, 3)
처럼 여러 값을 전달할 수 있으며, 이 값들은 args
라는 튜플로 받음.**kwargs
**kwargs
를 사용하여 가변 개수의 키워드 인자를 받을 수 있다. 키워드 인자들은 딕셔너리로 처리된다.
def print_info(**kwargs): # **kwargs는 키워드 인자를 받음
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="Seoul")
**kwargs
는 키워드 인자들을 딕셔너리로 받음.print_info(name="Alice", age=25, city="Seoul")
처럼 다양한 인자를 전달하면, 이 인자들은 kwargs
딕셔너리로 묶여서 처리됨.파라미터 유형 | 예시 |
---|---|
위치 기반 파라미터 | def add(a, b): return a + b |
키워드 파라미터 | introduce(age=25, name="Alice") |
기본값을 가지는 파라미터 | def greet(name, greeting="Hello"): |
가변 개수의 위치 인수 (*args ) | def sum_all(*args): return sum(args) |
가변 개수의 키워드 인수 (**kwargs ) | def print_info(**kwargs): |