Search

typing - Generic

그 중 사용자 지정 class에 대한 type hint Generic
[정의]
# https://docs.python.org/ko/3/library/typing.html from typing import TypeVar, Generic from logging import Logger T = TypeVar('T') class LoggedVar(Generic[T]): def __init__(self, value: T, name: str, logger: Logger) -> None: self.name = name self.logger = logger self.value = value def set(self, new: T) -> None: self.log('Set ' + repr(self.value)) self.value = new def get(self) -> T: self.log('Get ' + repr(self.value)) return self.value def log(self, message: str) -> None: self.logger.info('%s: %s', self.name, message)
Python
복사
class LoggedVar(Generic[T]): 의 의미는 class LoggedVar가 단일형 매개변수 T를 취한다는 것을 정의해줍니다
T를 클래스 바디 내에서 type으로 유효하게 합니다. 사용을 보면 더 잘 이해할 수 있습니다
[사용]
from collections.abc import Iterable def zero_all_vars(vars: Iterable[LoggedVar[int]]) -> None: for var in vars: var.set(0)
Python
복사