如何调用函数并仅传递它所期望的参数.例如,我说我有以下功能:
func1 = lambda a: True
func2 = lambda a, b: True
func3 = lambda c: True
Run Code Online (Sandbox Code Playgroud)
我想要一些能够成功调用这些函数的Python代码,而不需要TypeError通过传递意外的参数来引发这些函数.即
kwargs = dict(a=1, b=2, c=3)
for func in (func1, func2, func3):
func(**kwargs) # some magic here
Run Code Online (Sandbox Code Playgroud)
在**kwargs定义它们时,我对添加函数不感兴趣.
Sve*_*ach 10
你可以使用inspect.getargspec():
from inspect import getargspec
kwargs = dict(a=1, b=2, c=3)
for func in (func1, func2, func3):
func(**dict((name, kwargs[name]) for name in getargspec(func)[0]))
Run Code Online (Sandbox Code Playgroud)