首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有办法为函数提供比它所需要的更多的参数?

是否有办法为函数提供比它所需要的更多的参数?
EN

Stack Overflow用户
提问于 2022-11-17 08:31:58
回答 1查看 25关注 0票数 0

我想用kwargs将同一字典的元素传递给几个函数。问题是,本词典包含的函数比它们的参数列表中接收的函数更多。

例如,假设我有以下字典:

代码语言:javascript
复制
d = dict(a=1,b=2,c=3)

现在,我将在一个函数中使用它,该函数接收dict中的参数--它将工作:

代码语言:javascript
复制
def func1(a=3,b=2,c=5):
    return a+b+c

x = func1(**d)

但是,如果函数接收的参数比dict少,那么它将理所当然地导致一个错误:

代码语言:javascript
复制
def func2(a=1,b=1):
    return a+b
x = func2(**d)
代码语言:javascript
复制
---------------------------------------------------------------------------
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的一个子集?是否有一种简洁而优雅的方法使一个小弟弟适合某项功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-17 08:37:02

你可以用*args**kwargs来解决这个问题。

只需用

代码语言:javascript
复制
def func(a, b, **kwargs):
    return a+b

而且它应该能工作。也许是一个快速而肮脏的解决方案.:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74472302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档