Код: Выделить всё
from datetime import datetime
from functools import singledispatch
from random import choice, randint
from typing import NoReturn, Type
@singledispatch
def load_value(value) -> NoReturn:
raise NotImplementedError(f'Unsupported type: {value}')
@load_value.register
def _(value: Type[bool]) -> bool:
return choice([False, True])
@load_value.register
def _(value: Type[int]) -> int:
return randint(0, 1000)
@load_value.register
def _(value: Type[datetime]) -> datetime:
return datetime.now()
print(load_value(bool))
print(load_value(int))
print(load_value(datetime))
Код: Выделить всё
$ python ./register.py
Traceback (most recent call last):
File "./register.py", line 40, in
def _(value: Type[bool]) -> bool:
File "/app/pyenv/versions/3.8.11/lib/python3.8/functools.py", line 860, in register
raise TypeError(
TypeError: Invalid annotation for 'value'. typing.Type[bool] is not a class.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ot-a-class
Мобильная версия