我的目的是以最简单的方式得到一个完整的列表,其中包含分配给每个高级类中的变量的值。你知道吗
class First:
list = []
def get_final_list(self):
return self.list
class Second(First):
list = ['one']
class Third(Second):
list = ['two']
结果:list=['one','two']
这是最终结果的一个例子,但是很明显,返回这个值的函数的整个逻辑都丢失了。你知道吗
Tags:
最近我做了类似的事情,我希望子类能够在其父类的属性中定义附加的值。您可以使用metaclasses来实现这一点,它允许您以类允许您钩住实例创建的方式钩住类创建。你知道吗
例如,在您的案例中,您可以执行以下操作:
结果是:
有关元类的更多信息,请参见What are metaclasses in Python?
如果您真的感兴趣,您可以看到我在this commit中介绍它的地方;这说明了我是如何用元类替换一些笨拙的代码的。事实上,我是使用集合使它稍微容易,因为我不关心的顺序。你知道吗
如何使用适当的方法等,而不是仅仅在类中的字段?你知道吗
然后您可以:
相关问题 更多 >
编程相关推荐