绑定词典时出现问题

这必须是一件非常愚蠢的事情. 我有一个函数foo将字典作为参数. 即:def foo(** kwargs):通过 当我调用foo(param1 ='blah',param2 ='bleh',param3 ='blih') 很好. 但是当我这样做时: 我得到: Trackback(最近的最新电话): 文件" ",第1行,在? TypeError:foo()完全取0个参数(1给定) 为什么? 如何将字典 * d *传递给foo()? 谢谢, - 乔什.

# 回答1

vid ...@gmail.com写道:我得到:trackback(最近的呼叫最后):文件" ",第1行,在? TypeError:foo()精确获取0个参数(1给定)为什么? 如何将字典 * d *传递给foo()? 谢谢 - 乔什. 我的意思是,没有定义为foo(*args)或foo(dict).
# 回答2

您不是"爆炸"到param1 ='blah'等表单 - 您 - 实际上将其作为一个单一的对象传递. 要解决这个问题,添加一个** 就像您要在功能中爆炸的dict的前部一样 添加一个 *以爆炸序列.
# 回答3

vixexply@gmail.com写道:我得到:追溯(最新通话最后):文件" ",第1行,在? TypeError:foo()精确获取0个参数(1给定)为什么? 如何将字典 * d *传递给foo()? 谢谢 - 乔什. 仅仅因为您的参数定义期望关键字参数 通过,您正在通过放置来通过Paramater. 你应该打电话 这样的功能: f(mykey = d) 或者,由于d是dct,您可以将d的键/vals用作关键字参数: f(** d) 等同于这样做: f(param1 ='blah',param2 ='bleh',param3 ='blih') - - DSW

标签: python

添加新评论