In Python, should I use else after a return in an

2019-01-26 04:04发布

First, I couldn't find an answer to this in PEP 8. That doesn't mean it isn't in there. Feel free to point me at it.

Which style do you prefer?

The first one:

if spam:
    # Do stuff.
    return eggs
else:
    # Maybe do other stuff.
    return parrots

or the second one:

if spam:
    # Do stuff.
    return eggs
# Maybe do other stuff.
return parrots

8条回答
在下西门庆
2楼-- · 2019-01-26 04:32

Neither!

if spam:
    # Do Stuff
    result= eggs
else:
    # Maybe do other stuff
    result= parrots
return result
查看更多
SAY GOODBYE
3楼-- · 2019-01-26 04:33

The first one!

Explicit is better than implicit.

查看更多
劫难
4楼-- · 2019-01-26 04:34

It depends, if you would return parrots, when you do not return eggs, then the first one is more clear. But if you are trying to catch an error or something like that, the second one is better.

查看更多
家丑人穷心不美
5楼-- · 2019-01-26 04:37

I think it depends on the "do stuff" part. Both are acceptable.

查看更多
等我变得足够好
6楼-- · 2019-01-26 04:41

I don't know python, but I do :

return spam if eggs else parrots

Edit : I didn't notice the Do stuff part. In that case, I would create another method or function (whatever it is called in python) for each branch.

查看更多
We Are One
7楼-- · 2019-01-26 04:46

It doesn't really matter. If you really need reasons for picking one, use the one that best conveys the reasons behind the code. The first one if both cases are somehow similar or equally important. The second one if you usually return parrots but eggs is a special case.

查看更多
登录 后发表回答