是否可以将带有参数的函数传递给Python中的另一个函数?
比如说:
def perform(function):
return function()
Run Code Online (Sandbox Code Playgroud)
但要传递的函数将具有如下参数:
action1()
action2(p)
action3(p,r)
Run Code Online (Sandbox Code Playgroud) 我有一个字典,我需要传递键/值作为关键字参数..例如..
d_args = {'kw1': 'value1', 'kw2': 'value2'}
example(**d_args)
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是如果d_args dict中的值没有被example函数接受,它显然会死掉..比如说,如果示例函数定义为def example(kw2):
这是一个问题,因为我不控制生成d_args或example函数..它们都来自外部模块,example只接受来自dict的一些关键字参数.
理想情况下我会这样做
parsed_kwargs = feedparser.parse(the_url)
valid_kwargs = get_valid_kwargs(parsed_kwargs, valid_for = PyRSS2Gen.RSS2)
PyRSS2Gen.RSS2(**valid_kwargs)
Run Code Online (Sandbox Code Playgroud)
我可能只是从有效的关键字参数列表中过滤掉dict,但我想知道:有没有办法以编程方式列出特定函数所需的关键字参数?
鉴于以下功能:
def foo(a, b, c):
pass
Run Code Online (Sandbox Code Playgroud)
如何获得传入的参数的list/tuple/dict/etc,而不必自己构建结构?
具体来说,我正在寻找Python的JavaScript arguments关键字版本或PHP的func_get_args()方法.
我不想要的是使用*args或的解决方案**kwargs; 我需要在函数定义中指定参数名称(以确保它们被传入),但在函数中我希望在list-或dict-style结构中使用它们.