파이썬
변수 타입 어노테이션
96__혀누
2024. 3. 22. 02:08
변수 타입 어노테이션
변수 타입 어노테이션은 파이썬 3.5부터 도입된 기능으로, 변수의 예상 타입을 명시하는데 사용됩니다. 이는 주로 코드의 가독성을 높이고, 정적 타입 검사 도구(예: mypy)를 사용하여 타입 오류를 사전에 잡아내기 위한 목적으로 사용됩니다.
타입 어노테이션은 실제로 변수의 타입을 강제하는 것이 아니라, 개발자가 변수가 어떤 타입을 가져야 할 것으로 예상하는지 명시하는 것입니다.
기본 타입 어노테이션
name = '김사과'
name : str = '김사과'
age = 10
age : int = 10
height = 160.5
height : float = 160.5
is_lover = True
is_lover : bool = True
print(name)
print(type(name))
리스트, 튜플, 딕셔너리, 세트
List, Tuple, Dict, Set 등의 제네릭 타입을 사용하게 됩니다. 이러한 타입들은 typing 모듈에서 가져올 수 있습니다.
from typing import List, Tuple, Dict, Set # 모듈을 불러와야 한다
names = ['김사과', '오렌지', '반하나']
names: List[str] = ['김사과', '오렌지', '반하나']
age = (25, 20)
age : Tuple[int, int] = (25, 20)
student_scores = {'김사과': 90.5, '오렌지': 88.0}
student_scores: Dict[str, float] = {'김사과': 90.5, '오렌지': 88.0}
unique_numbers = {1, 2, 3, 3, 4}
unique_numbers: Set[int] = {1, 2, 3, 3, 4}
print(names)
print(age)
print(student_scores)
print(unique_numbers)
>>
['김사과', '오렌지', '반하나']
(25, 20)
{'김사과': 90.5, '오렌지': 88.0}
{1, 2, 3, 4}
함수
def add(a, b):
return a + b
# a는 int b는 int, 결과는 int 자료형으로 반환
def add(a: int, b: int) -> int :
return a + b
print(add(10, 3))
print(add('십', '삼'))
>>
13
십삼
add.__annotations__ # 타입 어노테이션을 확인
>> {'a': int, 'b': int, 'return': int}
클래스
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('김사과', 20)
print(student)
print_student(student)
>>
이름: 김사과, 나이: 20
이름:김사과, 나이:20
옵셔널
변수가 특정 타입이거나 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.8, '반하나':90.4}))
print(find_score('이메론', {'김사과':80.5, '오렌지':40.8, '반하나':90.4}))
>>
80.5
None