2009-10-21 158 views

回答

30

我認爲「鑄造」不應該用於Python;只有類型轉換,但沒有轉換(在C語言中)。類型轉換例如是完成的通過其中對象o被轉換成一個整數(實際上,一個整數對象是由o構造的)。強制在二元操作的情況下發生:如果您執行x+y,並且x和y具有不同的類型,則在執行操作之前它們被強制爲單一類型。在2.x中,一個特殊的方法__coerce__允許對象控制它們的強制。

38

演員是明確的。脅迫是隱含的。

在Python的例子是:

cast(2, POINTER(c_float)) #cast 
1.0 + 2 #coerce 
1.0 + float(2) #conversion 

演員真的只在C FFI出現。通常稱爲C或Java中的轉換在Python中稱爲轉換,儘管它通常被稱爲轉換,因爲它與其他語言相似。幾乎所有我用過的語言(包括python)Coercion都是隱式類型改變。

+2

-1。這是C++命名法; Python使用不同的術語。 – SamB

+12

+1:對於這個問題,這個例子是完全有效的。它明確標記爲C++。 – user183037

+2

這個問題是關於Python語言環境中的「cast」一詞的。解釋「float(1)'是施工而不是施工的答案是更好的。 –