一个接一个地调用一个函数是pythonic吗?我有两个功能,一个取决于另一个的结果:
function1() # if something goes wrong, will raise a error, if not, will return None
function2()
我正在考虑使用:
function1() is None and function2()
这是pythonic吗?
答案 0 :(得分:1)
您不应该将None
的返回值视为表示成功,而是将缺席视为异常。使用try
语句明确表示您知道异常的可能性,但如果有人提出异常,则故意让它通过调用链:
try:
function1()
else:
function2()
如果你愿意,你可以明确:
try:
function1()
except Exception:
raise
else:
function2()
答案 1 :(得分:0)
我很想使用try....except
测试而不是两个单独的函数
MyFunction()
try:
<your first action goes here>
except:
<what you want to happen if an error occurs go here>
您可能需要使用两个except
语句,一个用于None
返回,另一个用于其他任何语句。文档中有大量有用的信息:https://wiki.python.org/moin/HandlingExceptions