Python函数返回错误

GPB*_*GPB 6 python error-handling break

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

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
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为我想打破并返回错误代码(比如-1).似乎break将返回没有任何值,返回将继续执行该函数?或者Return是否会突破任何剩余的代码?

mem*_*lyk 31

什么是最佳做法?

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

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

与许多其他语言一样,该break语句用于中断循环中的流,就像用while或创建的那样for.


k4p*_*ppa 5

你不需要 break

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
Run Code Online (Sandbox Code Playgroud)

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

  • 我认为提出错误而不是硬编码值更加优雅和安全。 (4认同)