是否有一些類型檢查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/)底部的其他任何參考資料。 –