Python ** obj .__ dict__ equilavent命令

时间:2014-06-06 15:17:48

标签: python

我想知道func_wrap中是否还有pythonic调用,而不修改func或func_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__)

1 个答案:

答案 0 :(得分:1)

您可以使用vars function

def func_wrap(foo_obj):
    return func(**vars(foo_obj))

归结为同样的事情。