使用Python的typing
模块,我想创建一个自定义Type来检查参数属性的类型。更准确地说,在我的情况下,参数的类型应该是某个类的实例,而属性应该是某个类型。
通过一个最小的示例,我想实现的目标可能会更加清楚:
class Wrapper:
value: typing.Any
def f(obj: WrapperType[int]) -> None:
assert isinstance(obj, Wrapper) and type(obj.value) is int
如何创建反映此
WrapperType
行为(在键入方面)的assert
?我在typing
模块的文档中找不到关于此的提示。但是我不确定是否误解了那里的东西,或者我想要的东西是否只是不可能。 最佳答案
Wrapper
应该从Typing.Generic
继承。
from typing import Generic, TypeVar
T = TypeVar('T')
class Wrapper(Generic[T]):
value: T
def f(obj: Wrapper[int]) -> None:
...
关于python - 自定义类型参数的强制属性类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58937190/