class Person:
def __init__(self, name, age):
# 인스턴스 변수 초기화
self.name = name
self.age = age
def introduce(self):
# 인스턴스의 이름과 나이를 출력하는 메서드
print(f"My name is {self.name} and I am {self.age} years old.")
# 키워드 인자를 사용하여 Person 클래스의 인스턴스 생성
person = Person(name="Bob", age=25)
# 생성된 인스턴스의 introduce 메서드 호출
person.introduce() # 출력: My name is Bob and I am 25 years old.
파이썬에서 키워드 인자(keyword arguments)는 함수를 호출할 때, 인자들을 이름으로 명시적으로 지정할 수 있게 해주는 기능입니다. 이를 통해 함수 호출 시 인자의 순서에 구애받지 않고, 코드의 가독성을 높이며, 함수 사용 시 발생할 수 있는 실수를 줄일 수 있습니다.
함수를 정의할 때, 파라미터 이름 앞에 별표(*
)를 붙이면 그 뒤에 오는 모든 파라미터는 키워드 인자로만 전달될 수 있습니다. 이는 해당 파라미터들이 위치 인자로 전달될 수 없음을 의미합니다.
def function_with_keywords(*, kw1, kw2):
print(f"kw1 = {kw1}, kw2 = {kw2}")
이 함수는 다음과 같이 호출할 수 있습니다:
function_with_keywords(kw1="Hello", kw2="World")
하지만 다음과 같이 위치 인자로 호출하려고 하면 에러가 발생합니다:
# function_with_keywords("Hello", "World") # 이렇게 호출하면 에러 발생
함수 정의 시 파라미터에 기본값을 지정할 수 있으며, 이 경우 해당 파라미터는 선택적으로 됩니다. 호출 시 해당 인자를 생략하면 기본값이 사용됩니다.
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
이 함수는 다음과 같이 호출할 수 있습니다:
greet("Alice") # greeting은 기본값 "Hello"를 사용: "Hello, Alice!"
greet("Bob", "Howdy") # greeting에 "Howdy"를 명시적으로 전달: "Howdy, Bob!"
키워드 인자는 파이썬에서 함수의 유연성과 코드의 명확성을 높여주는 중요한 기능입니다. 함수 호출 시 인자의 이름을 명시적으로 지정함으로써, 코드를 더 읽기 쉽고 이해하기 쉬운 방식으로 작성할 수 있습니다.
위 예시에서 Person
클래스의 생성자 __init__
에는 두 개의 파라미터 name
과 age
가 있습니다. 일반적인 호출 방식(Person("Bob", 25)
)에서는 인자를 순서대로 전달해야 하지만, 키워드 인자를 사용하면(Person(name="Bob", age=25)
) 각 인자의 역할이 코드 상에서 명확해지고, 순서를 바꿔서 작성해도 동일하게 작동합니다(Person(age=25, name="Bob")
).
클래스의 __init__
메서드에서 키워드 인자를 사용하는 것은 객체를 초기화할 때 속성 값들을 명확하게 지정하는 데 유용합니다. 이는 특히 많은 수의 파라미터를 가진 클래스나, 특정 파라미터들이 선택적일 때 코드의 명확성과 유지보수성을 크게 개선할 수 있습니다.
person = Person(name="Bob", age=25)
구문은 파이썬의 키워드 인자를 활용하여 Person
객체를 생성하는 방법을 보여줍니다. 이 방식은 코드의 가독성과 유연성을 높여주며, 함수나 클래스의 인터페이스를 보다 명확하게 만들어 줍니다.