栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取函数参数的默认值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取函数参数的默认值?

Python3.x

在python3.x世界中,您可能应该使用一个

Signature
对象:

import inspectdef get_default_args(func):    signature = inspect.signature(func)    return {        k: v.default        for k, v in signature.parameters.items()        if v.default is not inspect.Parameter.empty    }

Python2.x(旧答案)

args /默认值可以组合为:

import inspecta = inspect.getargspec(eat_dog)zip(a.args[-len(a.defaults):],a.defaults)

a.args[-len(a.defaults):]
是带有默认值的参数,显然
a.defaults
是相应的默认值。

您甚至可以将输出传递

zip
dict
构造函数,并创建适合关键字解压缩的映射。


查看文档,此解决方案仅适用于python2.6或更高版本,因为我假设

inspect.getargspec
返回一个 命名的tuple
。较早的版本返回一个 常规元组 ,但是相应地修改它非常容易。这是一个与较旧(和较新)版本一起使用的版本:

import inspectdef get_default_args(func):    """    returns a dictionary of arg_name:default_values for the input function    """    args, varargs, keywords, defaults = inspect.getargspec(func)    return dict(zip(args[-len(defaults):], defaults))

想一想:

    return dict(zip(reversed(args), reversed(defaults)))

也会起作用,并且对某些人可能更直观。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号