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,也有明确的价值; 您的代码变得更易于阅读和理解.这是一个不变的权衡,没有一般的答案.