當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python matplotlib select_matching_signature用法及代碼示例

本文簡要介紹 python 語言中 matplotlib._api.select_matching_signature 的用法。

用法

matplotlib._api.select_matching_signature(funcs, *args, **kwargs)

選擇並調用接受 *args, **kwargs 的函數。

funcs 是不應引發任何異常的函數列表(如果傳遞的參數與其簽名不匹配,則 TypeError 除外)。

select_matching_signature 嘗試使用 *args, **kwargs 調用 funcs 中的每個函數(按照給出的順序)。因 TypeError 失敗的調用將被靜默跳過。一旦調用成功,select_matching_signature 就會返回其返回值。如果沒有函數接受 *args, **kwargs ,則重新引發上次失敗調用引發的 TypeError

調用者通常應確保任何 *args, **kwargs 隻能綁定單個 func (以避免任何歧義),盡管 select_matching_signature 不會檢查這一點。

注意

select_matching_signature 旨在幫助實現簽名重載函數。一般來說,除了向後兼容性問題之外,應該避免使用此類函數。典型的使用模式是

def my_func(*args, **kwargs):
    params = select_matching_signature(
        [lambda old1, old2: locals(), lambda new: locals()],
        *args, **kwargs)
    if "old1" in params:
        warn_deprecated(...)
        old1, old2 = params.values()  # note that locals() is ordered.
    else:
        new, = params.values()
    # do things with params

它允許使用兩個參數(old1old2)或單個參數(new)調用 my_func。請注意,新簽名是最後給出的,因此如果調用者傳入的參數與任何簽名都不匹配,則調用者會獲得與新簽名相對應的 TypeError

相關用法


注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib._api.select_matching_signature。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。