Есть ли способ утверждать описания типов во время выполнения?
принятие желаемого за действительное:
import typing
def work(hours: int, place: str, fruit: List[str]):
typing.assert(hours, int)
typing.assert(place, str)
typing.assert(fruit, List[str])
...
assert isinstance(hours, int)
? Обратите внимание, что любая нетривиальная проверка, такая какisinstance(fruit, List[str])
, будет мучительно медленной из-за O(n) или хуже. - person MisterMiyagi   schedule 20.01.2021typing
предназначен для аннотаций типов, а не для проверки типов во время выполнения. - person juanpa.arrivillaga   schedule 20.01.2021List[str]
это неtype
, это аннотация типа. Вам придется написать логику самостоятельно или использовать библиотеку, которая уже реализовала это, напримерpydantic
, обратите внимание, проверка аннотации типа, такой какList[str]
, была бы действительно неэффективной. - person juanpa.arrivillaga   schedule 20.01.2021mypy
- person juanpa.arrivillaga   schedule 20.01.2021