그 중 사용자 지정 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
복사