当我读到这篇文章时document :
for k in self.fields
作为for循环的描述,它应该是一个列表。
这意味着对象实例的属性字段
。
但在 Python Base 对象中没有 fields
属性,并且您会看到 AsDictMixin
是从 object
继承的。
最佳答案
Mixin 是期望被其他应具有某些属性的类继承的类。它类似于接口(interface),但它提供部分具体实现而不是纯粹的抽象。
In [1]: class MyMixin:
...: def get_evens(self):
...: return [x for x in self.elements if x % 2 == 0]
...:
In [2]: class MyClass(MyMixin):
...: def __init__(self, elements):
...: self.elements = elements
...:
In [3]: mc = MyClass([1, 2, 3, 4, 5])
In [4]: mc.get_evens()
Out[4]: [2, 4]
如您所见,可读性和代码清晰度存在问题。
关于python - 如何理解Class中的 `self.fields`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58536217/