在python中的__init__中返回None的错误形式

use*_*473 3 python coding-style initialization class

我正在修补一些课程,我遇到了一种情况,我想__init__在它有机会做更多事情之前切断它。为此,我只需return在要切断的块的末尾放置一个空语句。例如:

class Example(object):
    def __init__(self):
        #lots and lots of code
        if so_and_so:
            return
Run Code Online (Sandbox Code Playgroud)

__init__即使只是在这种情况下,返回 inside也是一种糟糕的形式吗?

shx*_*hx2 5

对于任何函数,不仅__init__,使用 plainreturn等同于返回None,如果不在return函数中使用,None则无论如何都会隐式返回。

因此,使用returninside完全没问题__init__

(上述规则的例外是生成器函数,在其中您只能使用return和 不能使用return None,因此它们在生成器函数中并不等效)。

在中间返回__init__将简单地切断对象的初始化。它不会阻止对象的创建,也不会以任何方式中断程序的流程。