Pythonのドキュメントとメーリングリストでは、値が「キャスト」されることもあれば、「強制」されることもあります。
32918 次
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 に答える