【发布时间】:2012-12-10 12:52:07
【问题描述】:
在 python 中,我们如何在没有预定义类的情况下创建一个新对象,然后再向它动态添加属性?
示例:
dynamic_object = Dynamic()
dynamic_object.dynamic_property_a = "abc"
dynamic_object.dynamic_property_b = "abcdefg"
最好的方法是什么?
编辑 因为很多人在 cmets 中建议我可能不需要这个。
问题是我有一个序列化对象属性的函数。出于这个原因,由于某些构造函数的限制,我不想创建预期类的对象,而是创建一个类似的对象,比如 mock,添加任何“自定义”属性需要,然后将其反馈给函数。
【问题讨论】:
-
究竟什么是“动态属性”?如
setattr(dynamic_object, variable_with_property_name, variable_with_property_value)?你需要一个集合来将一些“属性”与值相关联,并且那个东西的“类型”用在一个地方......你真的想要一个dict吗? -
@TokenMacGuy 检查更新问题
标签: python oop class object expandoobject