温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python获取函数所有入参的key-value

发布时间:2020-07-20 18:36:11 来源:网络 阅读:4481 作者:骑士救兵 栏目:编程语言

需要拿到一个函数里所有的传入的参数,并且存在一个字典里。
下面的方法确实拿到了字典,不过要求函数必须用非固定参数**kwargs定义,而且对调用函数很不友好

def func1(**kwargs):
    d = 'local_d'
    return kwargs

res = func1(a=1, b=2, c=3)
print(res)
# 结果:
# {'a': 1, 'b': 2, 'c': 3}

locals()函数会以字典类型返回当前位置的全部局部变量,看着很符合现在的需求:

def func2(a, b, c):
    d = 'local_d'
    return locals()

res = func2(1, 2, 3)
print(res)
# 结果:
# {'d': 'local_d', 'c': 3, 'b': 2, 'a': 1}

想着很好,但是实际用的时候,最后会把函数内部其他变量也返回。不完美,只想要入参的字典。
最后机制的小伙伴想到了,其实还是上面的方法:

def func3(a, b, c):
    kwargs = locals()
    d = 'local_d'
    return kwargs

res = func3(1, 2, 3)
print(res)
# 结果
# {'c': 3, 'b': 2, 'a': 1}

其实就是在函数的开始,其他变量还没有出现的时候,就想把当前的locals()取出来,等到最后再返回。完美!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI