Java和Python实现类型检查的方式到底有什么不同?
那么他们如何实现抽象数据类型呢?
发布于 2011-07-28 10:27:54
Java就是这样。
Python不需要。
Python是强动态类型的。您创建了一个对象,它将始终属于该类型。但是,指向该对象的变量可以指向任何类型的对象,而不必知道它指向的对象类型。
根据评论中的问题进行编辑:
这允许您定义一个类,这些类可以很容易地被期望字典、列表或其他类型的大多数函数使用。因此,如果我想创建一种特殊的列表,当您迭代它时,以自定义的顺序返回对象,我所要做的就是声明一个支持__getitem__、__iter__和其他一些方法的类,其他类将像使用列表一样使用它。
有关Python中抽象基类的信息,请参阅http://docs.python.org/glossary.html#term-abstract-base-class。在使用上,它们非常类似于Java中的抽象基类。
发布于 2011-07-28 10:42:58
Python和Ruby一样,使用Duck Typing,这是一种动态类型。Java显然是静态类型的,类型检查是在编译时完成的。
https://stackoverflow.com/questions/6853449
复制相似问题