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