跳到内容

yield-in-init (PLE0100)

源自 Pylint 代码检查工具。

作用

检查 __init__ 方法是否由于包含 yieldyield from 表达式而变成了生成器。

为什么这不好?

__init__ 方法是给定 Python 类的构造函数,负责初始化新对象,而不是创建新对象。

__init__ 方法必须返回 None。如果在 __init__ 中包含 yieldyield from 表达式,该方法在运行时被调用时会返回一个生成器对象,从而导致运行时错误。

示例

class InitIsGenerator:
    def __init__(self, i):
        yield i

参考