python中的抽象类:强制类型

时间:2014-04-04 09:31:35

标签: python

我的问题与此问题Is enforcing an abstract method implementation unpythonic?有关。我在python中使用抽象类,但我意识到没有什么能阻止用户实现一个函数,该函数接受的参数与基类的参数完全不同。因此,我可能必须检查参数的类型。那不是unpythonic吗?

人们如何在python中使用抽象类?

1 个答案:

答案 0 :(得分:0)

简短回答:是的,它是unpythonic。拥有一个抽象基类来检查实现的完整性可能仍然有意义。但是这样做的pythonic方法大多只是duck-typing,即假设你使用的对象满足你期望的规范。只需在文档中明确说明这些期望。

实际上,您通常不会进行大量的安全检查。即使你要检查类型,人们仍然可以在运行时伪造它。它还允许代码的用户更灵活地了解他们传递给代码的对象类型。每次都必须实现ABC,这会使代码混乱不堪。