python - 如何理解Class中的 `self.fields`?

标签 python

当我读到这篇文章时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/

相关文章:

python - 如何从命令行使包可执行?

python - 如果条件为真,如何比较变量然后分配新值?

Python 以一种棘手的方式连接列表元素

java - 在java中为计数器添加一个 Action 监听器

python - 在 Python 中比较矩阵并存储结果

python - 在 PyQt 中动态添加和删除小部件

python - 在Python中结合readline()和for循环而不使用next()

Python:使用自定义数字类或类型

python - 汇总数据框的前 10 行

python - ffmpeg:加载共享库时出错:libmp3lame.so.0:无法打开共享对象文件:没有这样的文件或目录