python从函数返回错误

Python Return error from function

我正在编写一个python函数,它使用两个大小相同的数组[n,1]。在进行任何计算之前,我想检查以确保长度相同,如果不相同,则返回一个错误。最佳实践是什么?

1
2
3
4
5
def do_some_stuff(array1, array2):
# Before doing stuff, check to ensure both arrays have the same length

if len(array1) != len(array2):
#  Break and return with error

我很困惑,因为我想中断并返回一个错误代码(比如-1)。似乎break将不带任何值返回,并且返回将继续执行函数?或者返回是否中断任何剩余代码?


What is the best practice?

在python代码中,错误条件通常用异常来表示。你可以使用raise ValueError("Arrays must have the same size")

使用异常而不是返回值来指示错误有一个额外的好处,即异常在到达except语句之前会冒泡。所以您可以将错误处理推迟到一个有意义的地方。此外,异常具有关联的描述性消息而不是幻数。

与许多其他语言一样,break语句用于中断循环中的流,如使用whilefor创建的循环。


你不需要break

1
2
3
4
5
def do_some_stuff(array1, array2):
    # Before doing stuff, check to ensure both arrays have the same length

   if len(array1) != len(array2):
       return -1

只需返回错误代码。这样就不会执行函数的其余代码。