这个问题涉及到好的和坏的做法: 从C编程中,我习惯于在函数的开始处检查传递的参数,从而在出现错误时返回错误代码(例如NULL
指针)。Python何时会出现错误?
在Python中,当允许通过的Queue
对象是None
或错误类型,并且试图对此无效队列对象进行操作时,会自动引发异常。它是很好的做法,检查数据类型提前像
def foo(queue):
if issubclass(Queue, arg):
raise ...
# ...
还是应该错误处理,而被留下来作为呼叫功能的任务,因为事情是错的呢?我很想用第一种方式去做,但是觉得它可能是错误的。
我认为所有好的功能和模块应该有内置的错误处理方法。 – ShreyasG
除了别的,鸭子打字的重点在于你**不应**测试某物是任何特定类型的子类。如果你需要检查任何东西,你会检查它是否有你需要调用的属性或方法。 –
我认为提早失败对于任何语言都是很好的做法。 – khelwood