파이썬

변수 타입 어노테이션

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