Python
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트
Chansman
2025. 3. 13. 12:28
📌 Python 함수 심화 – Chapter 6-12. 타입 어노테이션과 힌트
✅ 1. 파이썬의 동적 프로그래밍
- 파이썬은 동적 프로그래밍 언어로, 인터프리터가 실행 시 타입을 추론.
- 변수의 타입을 자유롭게 변경할 수 있음.
num = 10
print(type(num))
num = "10"
print(type(num))
- 출력 결과
<class 'int'>
<class 'str'>
- 설명: 파이썬은 타입을 고정하지 않기 때문에 값에 따라 타입이 자유롭게 변경됨.
❗ 대규모 프로젝트에서는 이러한 유연성이 버그로 이어질 수 있어, 타입 힌팅을 통해 명시적으로 타입을 지정하는 것이 좋음.
✅ 2. 타입 힌팅 (주석 방식)
def oz(x, y, h):
# type: (int, int, int) -> int
return x * y * h
oz(10, 10, 10)
- 출력 결과
1000
- 설명: 주석을 통해 타입 정보를 제공했지만, 코드 가독성이 떨어지는 단점이 있음.
✅ 3. 타입 어노테이션 (표준 방식)
- 타입 어노테이션을 사용하여 코드에 타입 정보를 명시적으로 작성.
def oz(x: int, y: int, h: int) -> int:
return x * y * h
oz(10, 10, 10)
- 출력 결과
1000
- 장점:
- 코드의 가독성과 정확성이 향상.
- 코드 자동 완성과 정적 타입 체크가 가능해짐.
⚠️ 주의: 타입 힌팅은 강제성이 없기 때문에, 잘못된 타입을 입력해도 오류는 발생하지 않음.
✅ 4. 변수 타입 어노테이션
my_dog: str = "hunt"
my_dog_age: int = 7
dogs: list[str] = ["닥스훈트", "시바견", "웰시코기", "이탈리안그레이하운드"]
dogs_age: dict[str, int] = {
"닥스훈트": 7,
"시바견": 5,
"웰시코기": 6,
"이탈리안그레이하운드": 3,
}
print(my_dog)
- 출력 결과
hunt
- 설명: 변수 선언 시 타입을 명시하여 가독성을 향상시킬 수 있음.
✅ 5. 함수 타입 어노테이션
- 함수의 인자 타입과 반환 타입을 명시하여 코드의 명확성을 강화.
def hunt(name: str) -> str:
return name[0]
def hunt_info(name: str, age: int = 7) -> str:
return name + str(age)
def hunt_happy_time(name: str) -> None:
print("간식줄게 " + name)
def hunt_bow(message: str, time: int = 10) -> list[str]:
return [message] * time
- 설명:
- -> str: 반환 타입이 문자열.
- -> None: 반환값이 없음.
- -> list[str]: 문자열을 원소로 가지는 리스트 반환.
✅ Tip: 팀 프로젝트에서 타입 힌트를 적용할 때는, 팀원과의 사전 합의가 중요.
✅ 이해도 체크리스트
- 타입 힌팅과 타입 어노테이션의 차이점은?
- 타입 힌팅: 주석을 통해 타입 정보를 제공.
- 타입 어노테이션: 변수나 함수 정의 시 타입 정보를 명시적으로 제공.
- 변수에 타입 어노테이션을 사용하는 방법은?
x: int = 10
y: str = "Python"
- 함수에 타입 어노테이션을 적용하는 방법은?
def add(x: int, y: int) -> int:
return x + y
- 타입 힌팅을 사용하면 얻을 수 있는 이점은?
- 코드의 가독성과 명확성이 향상됨.
- 정적 타입 체크와 자동 완성 기능을 제공해 코드 오류를 사전 예방할 수 있음.
이 정리된 내용을 통해 타입 어노테이션과 힌트의 개념을 확실히 익히고, 실무에서도 깔끔하고 명확한 코드를 작성해 보세요! 🚀