Type Hint
파이썬에서 Type Hint는 다음과 같이 진행할 수 있다.
심플 타입일 경우
int_var: int = 88
str_var: str = "hello world"
float_var: float = 88.9
bool_var: bool = True
Type Hint라고 하는 이유는 아래 예제와 같다
int_var: str = 88
예를 들어, int_var 이라는 변수에 88이라는 값을 할당해주면 int형이지만 타입 힌트에서 str로 해줬을 경우 에러가 날 것 같지만, 에러가 나지 않는다. 말 그대로 힌트이기 때문에 타입 검사를 하지 않는다.
리스트일 경우
from typing import List, Tuple, Dict
list_var: List[str] = ["1", "2", "3"]
리스트 객체 같은 경우에는 리스트 안에 어떤 값들이 들어올지도 적어준다.
typing 모듈 안에 List를 불러오고 넣어준다.
튜플일 경우
tuple_var: Tuple[int, ...] = (1, 3, 4)
튜플 객체 또한 리스트와 같이 표현해주면 된다.
딕셔너리일 경우
dic_var: Dict[str, int] = {"hello": 47}
리스트를 만들고 첫번째 인자로 key에 대한 타입, 두번째 타입에는 value의 타입으로
Dict[key타입, value타입]으로 정리해준다.
생산성이 좋은 동적 타이핑 언어를 사용하면 타이핑 역시 쉽게 사용했지만, 협업을 할 경우 타입이 다르게 나와 결과가 나올 경우를 방지하기 위해 변수에서 했던 것처럼 메서드에도 타입 힌트를 적용할 수 있다
메서드일 경우
def cal_add(x: int, y: int) -> int:
return x + y
인자의 타입에 인자의 타입 형을 적어주고 -> 뒤에는 return 타입을 적어주면 된다.
Callable types
Callable types 란 함수의 타이핑을 어떻게 할지에 대한 것들이다.
def add(a: int, b: int) -> int:
return a + b
위에서 설명했던 것처럼 인자의 타입도 명시를 해주고 -> 뒤에 return 타입을 명시해준다.
파이썬에서는 함수도 일급객체이기 때문에 함수로 인자를 넘길 수 있다.
이 때, 사용하는 것이 Callable types이다.
from typing import Callable
typing 모듈 안에 Callable을 import 해준다.
def foo(func: Callable[[int, int], int]) -> int:
return func(2, 3)
먼저, func 이라는 인자는 Callable 객체라고 힌트를 준다.
Callable 객체의 구성은 다음과 같다.
Callable[[인자의 타입, ...], return될 타입]
첫번째 인자에는 인자 값들에 대한 타입들을 적는다.
두번째 인자에는 return될 타입을 적는다.
'Language > Python' 카테고리의 다른 글
[Python] refactoring - 02. 캡슐화, DI를 통한 리팩토링 (0) | 2022.04.20 |
---|---|
[Python] refactoring - 01. 추상화, 생성자주입을 통한 리팩토링 (0) | 2022.04.20 |
[Python] 컴포지션(composition) (0) | 2021.12.16 |
[Python] 캡슐화(encapsulation) - @property 와 getter와 setter의 개념 (0) | 2021.12.14 |
[Python] 네임스페이스(namespace)에 대한 이해 (0) | 2021.12.08 |
댓글