博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python获取函数所有入参的key-value
阅读量:6118 次
发布时间:2019-06-21

本文共 672 字,大约阅读时间需要 2 分钟。

需要拿到一个函数里所有的传入的参数,并且存在一个字典里。

下面的方法确实拿到了字典,不过要求函数必须用非固定参数**kwargs定义,而且对调用函数很不友好

def func1(**kwargs):    d = 'local_d'    return kwargsres = 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 kwargsres = func3(1, 2, 3)print(res)# 结果# {'c': 3, 'b': 2, 'a': 1}

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

转载于:https://blog.51cto.com/steed/2161169

你可能感兴趣的文章
spring mvc入门
查看>>
2012在数据库技术会议上的讲话PPT打包
查看>>
【Android】 TextView设置个别字体样式
查看>>
python svn
查看>>
raise语句
查看>>
sequence2(高精度dp)
查看>>
ABP实战--集成Ladp/AD认证
查看>>
存储过程
查看>>
phpcms v9栏目列表调用每一篇文章内容方法
查看>>
python 自定义信号处理器
查看>>
luov之SMTP报错详解
查看>>
软件概要设计做什么,怎么做
查看>>
dwr
查看>>
java的特殊符号
查看>>
word2010中去掉红色波浪线的方法
查看>>
fabric上下文管理器(context mangers)
查看>>
JQuery-EasyUI Datagrid数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
查看>>
并发和并行的区别
查看>>
php小知识
查看>>
Windows下安装、运行Lua
查看>>