Rom*_*man 1 python validation arguments
在编程中C#
我通常写下面的参数验证代码:
void Process(object item) {
if (item == null) throw ArgumentNullException();
// code
}
Run Code Online (Sandbox Code Playgroud)
它是'Pythonic'进行类似的验证Python
吗?我真的不希望任何人None
转到Process
方法.我Python Exception
应该使用什么类型的?(没有标准ArgError
或类似的东西)
def Process(item):
if item == None: raise ArgNoneError('item')
# code
Run Code Online (Sandbox Code Playgroud)
谢谢
通常,你只是尝试使用你得到的参数 - 如果有人传递None
给你的函数,它无论如何都会失败.没有任何好处就没有必要为代码增加复杂性.恰恰相反 - 通常这样的测试会阻止您的代码在没有测试的情况下工作.
如果你想提出一些错误,请使用TypeError
- 它就是为了这个目的.