Either all return statements in a function should return an expression, or none of them should.
419
420
421@decorator
422def check_matplotlib_available(func, *args, **kwargs):423 """Emit a warning if matplotlib is not available."""
424
425 def _warn():
Description
According to PEP8, if any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None
, and an explicit return statement should be present at the end of the function (if reachable).
Good:
def foo(x):
if x >= 0:
return math.sqrt(x)
else:
return None
def bar(x):
if x < 0:
return None
return math.sqrt(x)
Bad:
def foo(x):
if x >= 0:
return math.sqrt(x)
def bar(x):
if x < 0:
return
return math.sqrt(x)