Python中if语句的最佳结构

时间:2015-08-13 13:43:50

标签: python if-statement

我想知道两种不同功能之间的推荐方法或优化方法是什么。

第一个(我个人会选择):

def myFunction1(aParameter):
    if aParameter == 0:
        result = 42
    elif aParameter == 1:
        result = 0
    else:
        result = None

    return result

第二个:

def myFunction2(aParameter):
    if aParameter == 0:
        return 42
    if aParameter == 1:
        return 0
    return None

如果我没弄错的话,这两个函数的行为应该是一样的,你会推荐哪一个?

提前谢谢! :)

编辑:

感谢您的快速解答。我知道这个问题可能是基于意见的。 我只是想知道是否有任何PEP建议关于这个或两种方式中的一种比另一种方式更常见。此外,关于性能,我想知道生成的字节码是否相同。

2 个答案:

答案 0 :(得分:12)

如果它只是三条路径,那么两种方式都可能没问题。当您开始拥有更多路径(通过其他语言的switch语句处理)时,通常接受的pythonic方式通常带有哈希值。

def myFunction1(aParameter):
    values = {0:42,1:0}
    return values.get(aParameter,None)

答案 1 :(得分:1)

我更喜欢第二个,因为它应该更快,更干净,更容易阅读和调试。