即使有些条件是空的,我是否应该总是完成所有条件?

2024-04-24 21:17:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我是否应该总是完成所有可能的条件,即使其中一些条件我没有任何动作可以移动,特别是对于非纯函数

快速示例:

def add_somenumber(lst):
    if len(lst) == 0:
        lst.append(1)
    elif len(lst) <= 5:
        lst.append(5)
    else:
        pass

或者可能是:

def add_somenumber(lst):
    if len(lst) <= 10:
        lst.append(0)
    elif 10 < len(lst) < 20:
        pass
    else:
        lst.append(1)

以上可以写成:

def add_somenumber(lst):
    if len(lst) <= 10:
        lst.append(0)
    elif len(lst) >= 20:
        lst.append(1)

函数本身没有意义,但是在这种情况下,我应该跳过else部分吗?你知道吗

原因是,如果我只有ifelif,如果我考虑所有的条件,可能会导致这个问题。但是else部分似乎毫无用处。你知道吗


Tags: 函数add示例lenifdefpass条件
2条回答

这里没有正确的答案,这只是一个风格问题。你知道吗

然而,当我遇到这样的情况(一段没有意义的代码)时,我通常只是猛击它。块在那里的事实向代码的维护者(或你未来的自己)暗示了它有一些目的,并且不必要地混淆。你知道吗

在您的情况下,else条件是什么也不做,所以拥有它是没有意义的。你知道吗

但你也会问自己是否考虑过所有的情况。在编写需要更健壮的程序时,最好是捕获未考虑的事件,无论是通过日志记录还是引发异常。在本例中,当其他两个条件的计算结果未为True时,您将使用else来检查它。你知道吗

示例:

def add_somenumber(lst):
    if len(lst) == 0:
        lst.append(1)
    elif len(lst) <= 5:
        lst.append(5)
    else:
        raise Exception('lst had an unexpected length')

或者

def add_somenumber(lst):
    if len(lst) == 0:
        lst.append(1)
    elif len(lst) <= 5:
        lst.append(5)
    else:
        print('lst had an unexpected length') # or you can log this

相关问题 更多 >