2024-06-16 11:43:04 发布
网友
Java和Python实现类型检查的方式到底有什么区别?在
他们如何实现抽象数据类型呢?在
Java就是这样。在
Python没有。在
Python是强动态类型的。你创建了一个对象,它总是属于那种类型。但是,指向该对象的变量可以指向任何类型的任何对象,并且不必知道它所指向的对象类型。在
根据评论中的问题进行编辑:
这允许您定义一个类,该类可以很容易地由大多数需要字典、列表或其他类型的函数使用。因此,如果我想创建一种特殊类型的列表,当你迭代它时,以自定义顺序返回对象,我所要做的就是声明一个支持__getitem__,__iter__的类和一些其他方法,而其他类将像使用列表一样使用它。在
__getitem__
__iter__
有关Python中抽象基类的信息,请参见http://docs.python.org/glossary.html#term-abstract-base-class。在使用中,它们非常类似于Java中的抽象基类。在
Python和Ruby一样,使用Duck Typing,这是一种动态类型。Java显然是静态类型的,类型检查是在编译时完成的。在
Java就是这样。在
Python没有。在
Python是强动态类型的。你创建了一个对象,它总是属于那种类型。但是,指向该对象的变量可以指向任何类型的任何对象,并且不必知道它所指向的对象类型。在
根据评论中的问题进行编辑:
这允许您定义一个类,该类可以很容易地由大多数需要字典、列表或其他类型的函数使用。因此,如果我想创建一种特殊类型的列表,当你迭代它时,以自定义顺序返回对象,我所要做的就是声明一个支持
__getitem__
,__iter__
的类和一些其他方法,而其他类将像使用列表一样使用它。在有关Python中抽象基类的信息,请参见http://docs.python.org/glossary.html#term-abstract-base-class。在使用中,它们非常类似于Java中的抽象基类。在
Python和Ruby一样,使用Duck Typing,这是一种动态类型。Java显然是静态类型的,类型检查是在编译时完成的。在
相关问题 更多 >
编程相关推荐