34

Pythonのドキュメントとメーリングリストでは、値が「キャスト」されることもあれば、「強制」されることもあります。

4

2 に答える 2

42

キャストは明示的です。強制は暗黙的です。

Pythonの例は次のようになります。

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

キャストは実際にはCFFIでのみ表示されます。通常、CまたはJavaでのキャストと呼ばれるものは、Pythonでの変換と呼ばれますが、他の言語との類似性から、キャストと呼ばれることもよくあります。私が経験したほとんどすべての言語(Pythonを含む)では、強制は暗黙的な型変更です。

于 2009-10-21T17:11:03.150 に答える
32

Pythonでは「キャスト」を使用すべきではないと思います。型変換のみがあり、キャストはありません(Cの意味で)。型変換は、たとえばint(o)、オブジェクトoが整数に変換される場合に実行されます(実際には、整数オブジェクトはoから構成されます)。二項演算の場合、強制が発生します。を実行しx+y、xとyの型が異なる場合、演算を実行する前に、それらは単一の型に強制されます。2.xでは、特別なメソッド__coerce__により、オブジェクトが強制を制御できます。

于 2009-10-21T16:55:57.657 に答える