1. 변수 타입 어노테이션
변수 타입 어노테이션은 파이썬 3.5부터 도입된 기능으로, 변수의 예상 타입을 명시하는데 사용됩니다. 이는 주로 코드의 가독성을 높이고, 정적 타입 검사 도구(예: mypy)를 사용하여 타입 오류를 사전에 잡아내기 위한 목적으로 사용됩니다.
타입 어노테이션은 실제로 변수의 타입을 강제하는 것이 아니라, 개발자가 변수가 어떤 타입을 가져야 할 것으로 예상하는지 명시하는 것입니다.
2. 기본 타입 어노테이션
name : str = '푸바오'
age : int = 3
height : float = 120.5
is_lover : bool = True
print(name)
print(type(name))
더보기
푸바오
<class 'str'>
3. 리스트, 튜플, 딕셔너리, 세트
컬렉션 타입에 대한 어노테이션은 조금 더 복잡합니다. 이를 위해 List, Tuple, Dict, Set 등의 제네릭 타입을 사용하게 됩니다. 이러한 타입들은 typing 모듈에서 가져올 수 있습니다.
from typing import List, Tuple, Dict, Set
names : List[str] = ['푸바오', '루이바오', '후이바오']
age : Tuple[int, int] = (25, 20)
scores : Dict[str, float] = {'푸바오' : 50, '아이바오' : 100}
numbers : Set[int] = {1, 2, 3, 3, 4}
print(names)
print(age)
print(scores)
print(numbers)
더보기
['푸바오', '루이바오', '후이바오']
(25, 20)
{'푸바오': 50, '아이바오': 100}
{1, 2, 3, 4}
4. 함수
함수의 매개변수와 반환 타입에 대한 어노테이션은 다음과 같이 합니다.
def add(a: int, b: int) -> int: # a는 int, b는 int, 결과(리턴값)는 int 자료형으로 처리
return a + b
print(add(10, 5))
print(add('10','삼'))
print(add.__annotations__) # 타입 어노테이션을 확인
더보기
15
10삼
{'a': <class 'int'>, 'b': <class 'int'>, 'return': <class 'int'>}
5. 클래스
클래스 또는 사용자 정의 타입에 대한 어노테이션도 가능합니다.
class Student:
def __init__(self, name: str, age: int):
self.name = name
self.age = age
def __str__(self) -> str:
return '이름:' + self.name + ', 나이:' + str(self.age)
def print_student(s: Student) -> None:
print(f"이름:{s.name}, 나이:{s.age}")
student = Student('푸바오', 3)
print(student)
print_student(student)
더보기
이름:푸바오, 나이:3
이름:푸바오, 나이:3
6. 옵셔널
변수가 특정 타입이거나 None일 수 있는 경우 Optional을 사용합니다.
from typing import Optional
def find_score(name : str, scores : Dict[str, float]) -> Optional[float] :
return scores.get(name)
print(find_score('푸바오', {'푸바오':80.5, '대나무':40.5, '아이바오':90.5}))
print(find_score('러바오', {'푸바오':80.5, '대나무':40.5, '아이바오':90.5}))
더보기
80.5
None
'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글
21. 파이썬 동기/비동기 (0) | 2023.12.13 |
---|---|
19. 파이썬 모듈 (0) | 2023.12.13 |
18. 파이썬 예외처리 (0) | 2023.12.12 |
17. 스페셜 메서드 (0) | 2023.12.12 |
16. 파이썬 상속 (0) | 2023.12.12 |