使用“和”调用两个函数

时间:2017-02-13 15:25:32

标签: python

一个接一个地调用一个函数是pythonic吗?我有两个功能,一个取决于另一个的结果:

function1() # if something goes wrong, will raise a error, if not, will return None
function2()

我正在考虑使用:

function1() is None and function2()

这是pythonic吗?

2 个答案:

答案 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