簡體   English   中英

如何在 Python 中指定 function 的輸入類型?

[英]How to specify the input type of a function in Python?

我有一個 function,它接收一個list並返回一個list ,當我為它編寫單元測試時,我發現 function 如果輸入是dictstr不會引發錯誤,這在 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 似乎適用於strdict輸入類型並返回空白列表,我該如何修改它並指定要列出的輸入? 希望這是有道理的,謝謝。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM