当我的一个函数检测到None需要参数值的地方时,引发的"正确"异常类是什么?例如:
def MyFunction(MyArg1, MyArg2):
if not MyArg2:
raise ?Error?
Run Code Online (Sandbox Code Playgroud)
我想我已经看到TypeError过这里使用过(而且我确实收到了NoneType其他类型的预期),但这并不能让我觉得这种情况非常正确,我觉得Exception可能更明确.
Fer*_*yer 46
Python中没有"无效参数"或"空指针"内置异常.相反,大多数函数会引发TypeError(无效类型,如NoneType)或ValueError(正确的类型,但该值在接受域之外).
如果你的函数需要一个特定类的对象而得到None它,那么它应该TypeError按照你指出的那样提高.在这种情况下,您应该None明确检查,因为False如果它实现了__nonzero__/ ,则正确类型的对象可以计算为boolean __bool__.
if MyArg2 is None:
raise TypeError
Run Code Online (Sandbox Code Playgroud)
Python文档: