当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。