簡體   English   中英

有沒有辦法在 Python 中檢查每個傳遞參數的類型?

[英]Is there a way to check each passed argument's type in Python?

假設我有一個接受任意數量參數的函數。 除了循環,有沒有辦法檢查每個參數是否是一個列表?

def func(*args):
    # check if all args are lists

我正在嘗試any()all()方法,但不知道是否有辦法將isinstance()type()與它們一起使用。

肯定的事:

all_lists = all(isinstance(arg, list) for arg in args)

all(isinstance(arg, list) for arg in args)

當然,生成器表達式中隱藏了一個循環; 在一天結束時,必須有某種循環..

我喜歡上面的答案:

all_lists = all(isinstance(arg, list) for arg in args)

但請注意,您還可以在較新版本的 Python 中進行類型提示:

def func(*args:list):
    # check if all args are lists

你可以從Mypy類的工具中獲得一些類型檢查

這個問題有很多變體:

  1. 如何確定對象的類型?
  2. 如何獲取對象的類?
  3. 如何檢查實例的類型?
  4. 如何檢查實例的類?

在 Python 中,內置函數 type() 和 isinstance() 可幫助您確定對象的類型。

  1. type(object) – 返回對象類型的字符串表示。

  2. isinstance(object, class) – 如果對象是類的實例,則返回布爾值 True,否則返回 False。

參考: 確定對象的類型

另請查看此鏈接以獲取更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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