Skip to content

Instantly share code, notes, and snippets.

@grimborg
Created April 19, 2020 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grimborg/60fbda2a76a35b194b31bd5e43f3443f to your computer and use it in GitHub Desktop.
Save grimborg/60fbda2a76a35b194b31bd5e43f3443f to your computer and use it in GitHub Desktop.
Python Typing Generics
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment