Python**obj.\uuu dict\uuu equilavent命令

Python**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

我想知道在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 + 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))