2014-02-12 61 views
-2

下面是一個例子: 在Python中,你可以在不聲明x的類型的情況下鍵入:x = 1或x ='hello',但是在Java中,你不能這樣做,必須首先聲明x的類型。Python與Java相比如何進行類型檢查?

所以我的問題是爲什麼Python允許這種行爲,與Java相比,Python如何進行類型檢查? (在我的想法中,在Python中,x只是一個標籤,它可以指向任何東西。任何人都可以給我一些關於x進行賦值操作時的機制的提示)

+3

http://en.wikipedia.org/wiki/Type_system – NullUserException

+0

我也喜歡這個:https://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20lang uage%20and%20also%20a%20strongly%20typed%20language –

+0

你是對的,'x'只是一個標籤。你想知道什麼?你在問關於內部實現的細節嗎? – BrenBarn

回答

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 

參見:

1

Here你有所有你需要的信息,這是關於動態類型化(Python)的一部分,你也有關於類型系統如何工作的信息。 Here是一篇關於Python打字的不錯而簡單的文章。

相關問題