Python中if语句的最佳结构

fil*_*ton 1 python if-statement

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

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

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

    return result
Run Code Online (Sandbox Code Playgroud)

第二个:

def myFunction2(aParameter):
    if aParameter == 0:
        return 42
    if aParameter == 1:
        return 0
    return None
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错,两个函数的行为应该是相同的,那么你会推荐哪一个?

先感谢您!:)

编辑:

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

Foo*_*oon 12

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

def myFunction1(aParameter):
    values = {0:42,1:0}
    return values.get(aParameter,None)
Run Code Online (Sandbox Code Playgroud)

  • 另外,`None`是一个冗余参数,因为它是默认的. (3认同)