python - 如何忽略传递给函数的意外关键字参数?

标签 python function dictionary

假设我有一些函数,f:

def f (a=None):
    print a

现在,如果我有一个字典,例如 dct = {"a":"Foo"},我可以调用 f(**dct) 并获取结果 Foo 打印出来。

但是,假设我有一个字典 dct2 = {"a":"Foo", "b":"Bar"}。如果我调用 f(**dct2) 我会得到一个

TypeError: f() got an unexpected keyword argument 'b'

很公平。但是,无论如何,在 f 的定义中或在它的调用中,是否告诉 Python 忽略任何不是参数名称的键?首选允许指定默认值的方法。

最佳答案

作为@Bas 发布的答案的扩展,我建议将 kw​​args 参数(可变长度关键字参数)添加为函数的第二个参数

>>> def f (a=None, **kwargs):
    print a


>>> dct2 = {"a":"Foo", "b":"Bar"}
>>> f(**dct2)
Foo

这必然足以满足

的情况
  1. 忽略任何不是参数名称的键
  2. 但是,它缺少参数的默认值,这是一个不错的功能,如果保留会很好

关于python - 如何忽略传递给函数的意外关键字参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515595/

相关文章:

python - 在 Python 中调用嵌套函数

javascript - 如何区分传递给函数的变量?

在 C 中调用以字符串变量命名的函数

python - 如果使用 python 不存在,则创建多个文件夹

python - 如何对 Pandas 的不规则时间间隔执行滚动平均值?

python - 单元测试 : Does it make sense to test parent object methods?

python - 在调整窗口大小的同时保持 QLabel 中图像的纵横比

python - 我可以比较两个顺序不同的字典的键吗?

python字典分配不按顺序

c++ - 按值存储 C++ 映射