[英]How to specify the input type of a function in Python?
我有一個 function,它接收一個list
並返回一個list
,當我為它編寫單元測試時,我發現 function 如果輸入是dict
或str
不會引發錯誤,這在 ZA7821172B362 中是否可以接受? 我找不到相關信息,如果這不可接受,我該如何指定輸入類型以僅列出?
這是 function:
def list_id_in_list(string_list: list) -> list:
id_list = []
for id in map(pre_defined_id_list, string_list):
if not id:
id_list.append([])
else:
id_list.append([i[2] for i in id])
return id_list
這個 function 將預定義的 id 列表映射到給定的字符串列表 go 通過字符串列表查看是否有任何 id 字符串,然后返回一個列表,其中只包含識別的 id。
這個 function 似乎適用於str
和dict
輸入類型並返回空白列表,我該如何修改它並指定要列出的輸入? 希望這是有道理的,謝謝。
Python 的類型注釋只是提示,它們不是強制的。
這部分是為了允許鴨子打字(例如,你可以傳入一個字符串元組,或者一個字符串生成器,......)。
如果您需要強制執行,您可以添加
if not isinstance(string_list, list):
raise TypeError("string_list must be a list")
if not all(isinstance(val, str) for val in string_list):
raise TypeError("string_list members must all be strings")
或類似於 function。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.