Я думаю, что возвращение None
- это " без движения " с точки зрения удобства использования, а не стиля. Как кратко упомянуто в этом ответе, рассмотрите возможность создания исключения вместо этого. Например:
def foobar(arg):
# connect to page by httplib
# check for arg in a certain pattern by lxml
if not check:
raise ValueError("arg did not match pattern in lxml")
return result
try:
result = foobar(arg)
except ValueError:
result = None
if result is not None:
# do stuff
else:
# do other stuff
Преимущество этого подхода состоит в том, что он делает его явным, когда нет совпадения. Другим людям, использующим вашу функцию, не нужно знать, что None
- это возвращаемое значение, которое они должны ожидать, когда нет совпадения, и они могут обработать исключение так, как считают нужным.