변수 타입 어노테이션
: 파이썬 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))
김사과
<class 'str'>
리스트, 튜플, 딕셔너리, 세트
from typing import List, Tuple, Dict, Set
names = ['김사과', '오렌지', '반하나']
names: List[str] =['김사과', '오렌지', '반하나']
(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}
['김사과', '오렌지', '반하나']
(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('십', '삼')) # 에러가 발생하지는 않음
# print(add('십', 3))
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)
이름 : 김사과, 나이 : 20
print_student(student)
이름 : 김사과, 나이 : 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}))
80.5
'코딩 > 파이썬' 카테고리의 다른 글
파일 입출력 라이브러리 (0) | 2024.03.21 |
---|---|
파이썬 과제 (5). 영어 단어장 만들기 (파일 입출력) (0) | 2024.03.21 |
파이썬 모듈 (0) | 2024.03.20 |
파일 입출력 (0) | 2024.03.20 |
파이썬 과제 (4). 주민등록번호 유효성 검사 (0) | 2024.03.20 |