Python**obj.\uuu dict\uuu equilavent命令
我想知道在func\u wrap中是否还有其他pythonic调用,在不修改func或func\u wrap头的情况下,调用函数funcPython**obj.\uuu dict\uuu equilavent命令,python,Python,我想知道在func\u wrap中是否还有其他pythonic调用,在不修改func或func\u wrap头的情况下,调用函数func class Foo(object): a = 1 b = 2 class Bar(object): c = 3 def func_wrap(foo_obj, bar_obj): return func(a=foo_obj.a, b=foo_obj.b, c=bar_obj.c) def func(a, b, c): return a
class Foo(object):
a = 1
b = 2
class Bar(object):
c = 3
def func_wrap(foo_obj, bar_obj):
return func(a=foo_obj.a, b=foo_obj.b, c=bar_obj.c)
def func(a, b, c):
return a + b + c
更大致的是:
def func_wrap(foo_obj, bar_obj):
return func(**foo_obj.__dict__ , **bar_obj.__dict__)
您可以使用:
这可以归结为同一件事。如果我有更多来自多个对象的参数,是否可以传入多个变量?(相应地编辑了问题)@MattStokes:您可以使用
func(**dict(vars(ob1),**vars(ob2))
组合两个对象,多个对象需要一个循环,在该循环中您使用所有选项更新一个字典,然后将该字典传递给函数。
def func_wrap(foo_obj):
return func(**vars(foo_obj))