Skip to main content
 首页 » 编程设计

Python 方法的参数验证,ArgError

2025年05月04日13jirigala

在C#中编程时,我通常会编写以下参数验证代码:

void Process(object item) { 
    if (item == null) throw ArgumentNullException(); 
    // code 
} 

在 Python 中做类似的验证是“Pythonic”吗?我真的不希望任何人将 None 传递给 Process 方法。我应该使用哪种类型的 Python Exception? (没有标准的 ArgError 或类似的东西)

def Process(item): 
  if item == None: raise ArgNoneError('item') 
  # code 

谢谢

请您参考如下方法:

通常,您只需尝试处理您获得的参数——如果有人将 None 传递给您的函数,它无论如何都会失败。无需在没有任何好处的情况下增加代码的复杂性。恰恰相反——通常这样的测试会阻止您的代码在没有测试的情况下正常工作。

如果您无论如何都想引发一些错误,请使用 TypeError - 它就是为此目的而设计的。