是否有一些类型检查API从python3.5键入,我可以用它来检查运行时嵌套类型。 例如:python嵌套类型检查在运行时没有外部包
from typing import List
check_type([1,2,3], List[int]) # True
check_type([1,2,''], List[int]) # False
这是唯一的例子(也可以是3个或更多级别的嵌套,有列表,元组,字典)
是否有一些类型检查API从python3.5键入,我可以用它来检查运行时嵌套类型。 例如:python嵌套类型检查在运行时没有外部包
from typing import List
check_type([1,2,3], List[int]) # True
check_type([1,2,''], List[int]) # False
这是唯一的例子(也可以是3个或更多级别的嵌套,有列表,元组,字典)
可以使用all()
内置函数象下面这样:
def check_type(iterable, tp):
return all(isinstance(item, tp) for item in iterable)
输出:
>>> check_type([1, 2, 3], int)
True
>>>
>>> check_type([1, 2, ''], int)
False
['isinstance'推荐使用'type'](https://docs.python.org/3/library/functions.html#type) - _“建议使用'isinstance()'内置函数进行测试一个对象的类型,因为它考虑了子类。“_。 –
对不起,迭代只是示例,只是为了简化问题。在真实的结构可以是复杂的,所以我想我可以打电话的东西没有手动落到结构的底部 – user3479125
@ChristianDean谢谢!我更新了我的答案。 – ettanany
无但是你可以很容易地实现它:'对于obj中的li,'def check_type(li,inner_type):return isinstance(li,list)和all(isinstance(obj,inner_type))' – DeepSpace
也许这有助于:http:// mypy- lang.org/?或查看[PEP 484](https://www.python.org/dev/peps/pep-0484/)底部的其他任何参考资料。 –