私はPythonが初めてで、これは奇妙です(そして驚くべきことです)。誰か説明できますか?
a = 2.0
b = 3.1
if b==3.1:
print "%f"%a
a = "Hi!"
print "%s"%a
print "%s"%a
Output:
2.000000
Hi!
Hi!
の型は から にどのようにa
変化しfloat
ていstring
ますか? C/C++ で同様のことを行うにはどうすればよいですか?
Python は動的型付け言語です。つまり、同じ変数が異なる型のオブジェクトを参照できます。C、C++、Java などの言語は静的に型付けされています。つまり、型はコンパイル時に決定されます。
C++ のようなオブジェクト指向プログラミングをサポートする静的型付け言語では、継承とポリモーフィズム (基底クラス ポインター) を使用して、異なるサブクラス型の複数のオブジェクトを参照できますが、「ダック タイピング」ほど柔軟ではありません。パイソンに入る。
C および C++ では、ジェネリックvoid*
ポインターを使用して任意の型のオブジェクトを指すこともできますが、コンパイラによって提供される型の安全性は失われます。
Python は動的に型付けされます。型宣言はなく、任意の名前でいつでも任意の値を参照できます。
C や Java などの静的に型付けされた言語は型を変数に割り当てますが、間違った型の値を名前に割り当てるとエラーになります。Python にはそのような制限はありません。