我想用kwargs将同一字典的元素传递给几个函数。问题是,本词典包含的函数比它们的参数列表中接收的函数更多。
例如,假设我有以下字典:
d = dict(a=1,b=2,c=3)现在,我将在一个函数中使用它,该函数接收dict中的参数--它将工作:
def func1(a=3,b=2,c=5):
    return a+b+c
x = func1(**d)但是,如果函数接收的参数比dict少,那么它将理所当然地导致一个错误:
def func2(a=1,b=1):
    return a+b
x = func2(**d)---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In [4], line 4
      1 def func2(a=1,b=1):
      2     return a+b
----> 4 x = func2(**d)
TypeError: func2() got an unexpected keyword argument 'c'```是否有办法使这个场景工作,而不必重新安排我的函数参数?也许是通过创建dict的一个子集?是否有一种简洁而优雅的方法使一个小弟弟适合某项功能?
发布于 2022-11-17 08:37:02
你可以用*args和**kwargs来解决这个问题。
只需用
def func(a, b, **kwargs):
    return a+b而且它应该能工作。也许是一个快速而肮脏的解决方案.:-)
https://stackoverflow.com/questions/74472302
复制相似问题