2009-10-21 10 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言語の文脈で「キャスト」という用語についてです。 'float(1)'が鋳造ではなく建設であることを説明する答えが良いです。 –

関連する問題