我有一个方法,它返回一个类的值对象,如下所示:
def get_val_obj():
return SomeValueObject()
我有另一个方法,它接受一个字典和关键字参数:
def some_other_method(some_dict, some_other_argument, **kwargs):
"""Do some stuff"""
最后在调用方法中:
some_val_obj_1 = get_val_obj()
some_val_obj_2 = get_val_obj()
some_other_method(some_val_obj_1.__dict__, 'blah', **some_val_obj_2.__dict__)
我在某个地方看到,如果Value Object中有一个init方法来设置属性,你可以使用
.__dict__
转换popo。不管用,你觉得解决我问题的最好方法是什么?我可以直接在get_val_obj()中返回一个字典,但我想保留它,以便它返回一个POPO。有没有其他的方法我可能完全忽略了?谢谢你的帮助。
我相信你指的是:
class Foo(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
foo = Foo(a=1, b=2, c=3)
print foo.a
print foo.b
print foo.c
这基本上只是一个类,其构造函数通过它的__dict__
属性更新它的内部属性。所有的吗?Python中的对象有一个__dict__
,用来保存对象的属性。
参见:数据模型