如何解决将 `typing` 对象作为参数传递?
我正在尝试编写一个带有两个参数的函数:一个变量和一个(非内置)类型。
如果变量的类型与作为第二个参数给出的类型不对应,我希望类型检查(使用 mypy
)失败。
这是我尝试过的虚拟示例:
from typing import Tuple,Type,TypeVar
T = TypeVar('T')
def do_something(variable: T,typeT: Type[T]) -> str:
# Actually,I doing something here,# this return is for the sake of simplicity the example.
return 'done'
MyNumberT = Tuple[float,int]
foo = (42.0,42)
print(do_something(foo,MyNumberT))
mypy
抱怨以下内容:error: Argument 2 to "do_something" has incompatible type "object"; expected "Type[Tuple[float,int]]"
。
我想我明白为什么它会失败,毕竟:
>>> type(Type[Tuple[float,int]])
<class 'typing._GenericAlias'>
所以第二个参数不是暗示类型。
但是有没有办法让这样的场景奏效?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。