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也是一种糟糕的形式吗?
对于任何函数,不仅__init__,使用 plainreturn等同于返回None,如果不在return函数中使用,None则无论如何都会隐式返回。
因此,使用returninside完全没问题__init__。
(上述规则的例外是生成器函数,在其中您只能使用return和 不能使用return None,因此它们在生成器函数中并不等效)。
在中间返回__init__将简单地切断对象的初始化。它不会阻止对象的创建,也不会以任何方式中断程序的流程。