不推荐在python中`return None`.如何绕过?

Auf*_*ind 14 python handle return-value

我有一个通过httplib使用连接到URL的功能lxml.它检查xpath某个模式,如果检查结果是肯定的,则返回一个字符串.但如果检查结果为否定,则不返回任何内容.

现在的情况是,我的函数返回None.我调用该函数,检查它的返回值是否为not None并继续在代码中.

一个例子:

def foobar(arg):
    # connect to page by httplib
    # check for arg in a certain pattern by lxml
    if check:
        return result
    else:
        return None

result = foobar(arg)
if result:
    # do stuff
else:
    # do other stuff
Run Code Online (Sandbox Code Playgroud)

最近我读到,这是不行的.我该如何避免这种情况?

Håv*_*d S 42

返回没有错None.

在大多数情况下,您不需要显式返回None.Python会为你做的.这是您的更改版本,foobar其行为相同而不显式返回None:

def foobar(arg):
  if check:
    return result
# If not check, then None will be returned
Run Code Online (Sandbox Code Playgroud)

尽管如此,即使Python隐式返回None,也有明确的价值; 您的代码变得更易于阅读和理解.这是一个不变的权衡,没有一般的答案.