鋳造:パイソン型変換/ Iは、次の2つのコードスニペットの差があるか疑問だ構文の違い
float_var = 1234.5678
a = int(float_var)
b = (int)(float_var)
両者が正常、少なくともパイソン3.6(整数Iに変数を変換しますこの動作が2.7でサポートされているかどうかはわかりませんが)構文には明らかな違いがあります。さらに、次のスニペットは失敗します。私をリード
c = (int)float_var
は、変数名(それがされるように、またはリテラル)は括弧で囲まなければならないことを信じるように。
私が2つの例の違いを集めることができるのは、最初のものがパラメータを__init__メソッドに渡すことによってクラスの新しいインスタンスを作成することです。 2番目の例では、intオブジェクトはメソッド__float__を定義するので、floatをintのインスタンスに「キャスト」することができます。
これは正しいと思いますか?また、なぜ3番目の例が失敗するのでしょうか?私はなぜかっこが "キャスト"されている値を囲む必要があるのか分かりません。
また、2番目の例が最初の例ほど広く使用されていない理由はありますか?私の推測では、それは明らかではないが、わからない。 –
「a」と「b」は同一です。 – Blender
'int'のまわりの括弧は単純に何もしません。あなたは 'dis'モジュールを使って結果のバイトコードを見ることができます。 –