我正在实现一个用户界面。许多对象向用户界面公开各种属性。它们每个都有一个对象“ExposedProperties”,其中包含一个公开属性的列表(以及它们的类型、应该如何显示、应该如何验证输入等)。这个ExposedProperties对象为每个类计算一次。你知道吗
我想得到一个对象的所有公开属性的串联。一种方法是让每个对象将其“ExposedProperties”传递到__init__
中的继承链上,并让每个超类将其与自己的ExposedProperties连接起来。基类将在对象上设置串联的ExposedProperties。你知道吗
另一种方法是等待从对象请求全部公开的属性。然后,一个基类方法扫描mro
中每个类的exposed_properties
属性,然后将它们连接起来。你知道吗
在Python中,连接这些存储在继承链中的对象的最Python的方法是什么?你知道吗
由于公开的属性是类属性,因此在创建类时构造所需的列表(类的公开属性及其祖先属性的列表)是有意义的,可以使用元类。(编辑:我看到评论中也提出了同样的建议。)
下面是一个这样做的例子:
相关问题 更多 >
编程相关推荐