Java 爪哇及;Python类型检查
Java和Python实现类型检查的方式到底有什么区别 那么它们是如何实现抽象数据类型的呢?Java就是这样做的 Python没有 Python是强动态类型的。您创建了一个对象,它将始终是该类型。但是,指向该对象的变量可以指向任何类型的任何对象,并且不必知道它指向的对象的类型 根据评论中的问题进行编辑: 这允许您定义一个类,该类可以被大多数需要字典、列表或其他类型的函数轻松使用。因此,如果我想创建一种特殊的列表,当您迭代它时,以自定义顺序返回对象,我所要做的就是声明一个类,该类支持Java 爪哇及;Python类型检查,java,python,types,Java,Python,Types,Java和Python实现类型检查的方式到底有什么区别 那么它们是如何实现抽象数据类型的呢?Java就是这样做的 Python没有 Python是强动态类型的。您创建了一个对象,它将始终是该类型。但是,指向该对象的变量可以指向任何类型的任何对象,并且不必知道它指向的对象的类型 根据评论中的问题进行编辑: 这允许您定义一个类,该类可以被大多数需要字典、列表或其他类型的函数轻松使用。因此,如果我想创建一种特殊的列表,当您迭代它时,以自定义顺序返回对象,我所要做的就是声明一个类,该类支持\uuuu g
\uuuu getitem\uuuuuuuuuu
,\uuuuuuu iter\uuuuuuuuuuuu
和一些其他方法,其他类将使用它,就像它是一个列表一样
有关Python中抽象基类的信息,请参见。在使用中,它们与Java中的抽象基类非常相似。Java确实如此
Python没有
Python是强动态类型的。您创建了一个对象,它将始终是该类型。但是,指向该对象的变量可以指向任何类型的任何对象,并且不必知道它指向的对象的类型
根据评论中的问题进行编辑:
这允许您定义一个类,该类可以被大多数需要字典、列表或其他类型的函数轻松使用。因此,如果我想创建一种特殊的列表,当您迭代它时,以自定义顺序返回对象,我所要做的就是声明一个类,该类支持\uuuu getitem\uuuuuuuuuu
,\uuuuuuu iter\uuuuuuuuuuuu
和一些其他方法,其他类将使用它,就像它是一个列表一样
有关Python中抽象基类的信息,请参见。在使用上,它们与Java中的抽象基类非常相似。Python与Ruby一样使用动态类型。Java显然是静态类型的,类型检查是在编译时完成的。Python和Ruby一样使用动态类型。Java显然是静态类型的,类型检查是在编译时完成的。这是一个特性。它给你更多的力量。您可以定义一个类似于列表的类,并且可以由任何接受列表的方法使用。您可以创建一个类似于文件的类,并允许您向需要文件对象的代码提供数据或从中捕获数据。错误。Python在运行时进行类型检查,Java在编译时进行类型检查。在Python中,名称是非类型化的,但Python对象是强类型的。“更好”在旁观者眼中。和您一样,我认为缺少强类型检查会导致更多错误——或者,在编写代码时确实如此。(也许我需要编译器作为支撑。)但我遇到过很多程序员,他们喜欢Python或PHP之类的非强类型的东西。Python是强类型的,只是不是静态类型。然而,PHP是弱类型和动态类型的。@大多数情况下,Python并不关心类型,只要对象支持正确的操作,并使用特殊方法,如
\uuuu getattr\uuuuu
,\uu iter\uuuu
等。这是一项功能。它给你更多的力量。您可以定义一个类似于列表的类,并且可以由任何接受列表的方法使用。您可以创建一个类似于文件的类,并允许您向需要文件对象的代码提供数据或从中捕获数据。错误。Python在运行时进行类型检查,Java在编译时进行类型检查。在Python中,名称是非类型化的,但Python对象是强类型的。“更好”在旁观者眼中。和您一样,我认为缺少强类型检查会导致更多错误——或者,在编写代码时确实如此。(也许我需要编译器作为支撑。)但我遇到过很多程序员,他们喜欢Python或PHP之类的非强类型的东西。Python是强类型的,只是不是静态类型。然而,PHP是弱类型和动态类型的。@大多数情况下,Python不关心类型,只要对象支持正确的操作,并使用特殊方法,如\uuuu getattr\uuuuuu
,\uuu iter\uuuuu
等。