在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 - 它就是为此目的而设计的。
