Python의 타입힌트(Type Hint)는 함수뿐 아니라 클래스에도 적용할 수 있습니다.
특히 클래스 타입을 지정해주면 IDE나 에디터에서 자동완성(타입 자동채움) 을 지원해주기 때문에, 더 편리하고 안정적인 코드를 작성할 수 있습니다.
이번 글에서는 클래스 타입에 대한 타입힌트 기본 사용법과 예제를 살펴보겠습니다.
클래스 타입 지정 기본
클래스 타입힌트는 해당 인스턴스에 대한 클래스 이름을 직접 적어주면 됩니다.
class User:
def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
def get_user_name(user: User) -> str:
return user.name
u = User("주임", 30)
print(get_user_name(u)) # 출력: "주임"
여기서 get_user_name 함수의 인자 타입을 User로 지정했기 때문에,
IDE에서는 user.를 입력할 때 자동으로 name, age 속성 자동완성을 지원합니다.
반환 타입으로 클래스 지정
함수의 반환 타입이 클래스일 경우에도 마찬가지로 클래스 이름을 지정할 수 있습니다.
def create_user(name: str, age: int) -> User:
return User(name, age)
new_user = create_user("민수", 25)
print(new_user.age) # 25
이 경우 new_user는 User 타입으로 추론되므로, IDE에서 new_user.를 입력하면 클래스 속성과 메서드 자동완성이 나옵니다.
클래스 상속과 타입힌트
상속 관계에서도 마찬가지로 부모 클래스 타입을 지정할 수 있습니다.
이 경우, 부모 클래스를 타입으로 선언하면 자식 클래스 인스턴스도 받을 수 있습니다.
class Animal:
def speak(self) -> str:
return "..."
class Dog(Animal):
def speak(self) -> str:
return "멍멍!"
def make_sound(animal: Animal) -> str:
return animal.speak()
print(make_sound(Dog())) # 출력: "멍멍!"
make_sound 함수는 Animal 타입을 인자로 받지만, 실제로는 Dog 인스턴스를 전달해도 정상적으로 동작합니다.
정리
- 클래스 타입힌트는 인자나 반환 타입에 해당 클래스 이름을 직접 적으면 됨
- IDE에서 타입을 인식하기 때문에 속성·메서드 자동완성 기능이 강화됨
- 상속 구조에서는 부모 타입을 지정하면 자식 인스턴스도 받을 수 있음
클래스 타입힌트를 적극적으로 활용하면, 코드의 가독성과 안정성이 높아지고 IDE 지원도 강화됩니다.
'파이썬 > 타입 힌트' 카테고리의 다른 글
| Python 타입힌트: Final로 상수 정의하기 (0) | 2025.09.10 |
|---|---|
| Python 타입힌트: 클래스 내부에서 자기 자신 참조하기 (0) | 2025.09.10 |
| Python 타입힌트: Optional 타입 활용법 (0) | 2025.09.10 |
| Python 타입힌트: Union 타입 활용법 (0) | 2025.09.10 |
| Python 타입힌트: Callable 활용법 (0) | 2025.09.10 |