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

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

下面的方法确实拿到了字典,不过要求函数必须用非固定参数**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()取出来,等到最后再返回。完美!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值