与Java相比,Python如何进行类型检查?

时间:2014-02-12 18:02:51

标签: java python

这是一个例子: 在Python中,您可以键入:x = 1或x ='hello'而不声明x的类型,但是,在Java中,您不能这样做,您必须首先声明x的类型。

所以我的问题是为什么Python允许这种行为,与Java相比,Python如何进行类型检查? (在我的想法中,在python中,x只是一个标签,它可以指向任何东西。当x进行赋值操作时,任何人都可以给我一些关于机制的提示)

2 个答案:

答案 0 :(得分:1)

Here您拥有所需的所有信息,这是关于动态类型(Python)的部分,您还可以获得有关类型系统如何工作的信息。 Here是关于Python输入的一篇很好而且简单的文章。

答案 1 :(得分:1)

Python没有像Java那样的静态类型检查。相反,Python使用动态类型以及duck-typingit's easier to ask for forgiveness than permission的常用方法。但是,您可以使用isinstance()手动检查对象的类型(有些人认为它较差但我不同意):

>>> x = 1
>>> x.__class__
<type 'int'>
>>> isinstance(x, int)
True
>>> isinstance(x, str)
False

>>> x = 'hello'
>>> x.__class__
<type 'str'>
>>> isinstance(x, int)
False
>>> isinstance(x, str)
True

另见: