1. 변수 타입 어노테이션
변수 타입 어노테이션은 파이썬 3.5부터 도입된 기능으로, 변수의 예상 타입을 명시하는데 사용됩니다. 이는 주로 코드의 가독성을 높이고, 정적 타입 검사 도구(예: mypy)를 사용하여 타입 오류를 사전에 잡아내기 위한 목적으로 사용됩니다.
타입 어노테이션은 실제로 변수의 타입을 강제하는 것이 아니라, 개발자가 변수가 어떤 타입을 가져야 할 것으로 예상하는지 명시하는 것입니다.
2. 기본타입 어노테이션
name = '김사과'
name: str = '김사과'
age = 10
age: int = 10
height = 160.5
height: bool = 160.5
is_love = True
is_love: bool = True
print(name)
3. 리스트, 튜플, 딕셔너리, 세트
컬렉션 타입에 대한 어노테이션은 조금 더 복잡합니다. 이를 위해 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: Dict[str, float] = {'김사과': 90.5,'오렌지':80.0}
uniqe_numbers: Set[int] = {1, 2, 3, 3, 4}
print(names)
print(age)
print(student_scores)
print(uniqe_numbers)
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))
add.__annotations__
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('김사과', 20)
print(student)
print_student(student)
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.8, '반하나':90.4}))
print(find_score('이메론', {'김사과':80.5, '오렌지':40.8, '반하나':90.4}))
'코딩 > 파이썬' 카테고리의 다른 글
데이터베이스와 MongoDB (1) | 2024.06.07 |
---|---|
디렉토리 관리 프로그램 (1) | 2024.03.22 |
파일 입출력을 이용한 단어장 만들기 (0) | 2024.03.21 |
파이썬 파일입출력 (0) | 2024.03.20 |
파이썬 모듈 (0) | 2024.03.20 |