Python3 に Python2 と互換性のないコマンドがある理由がわかりません。
たとえば、コマンド
「こんにちは」を印刷
Python3 ではなく Python2 で動作します。なんで?
たとえば、C#4 が C#2 と互換性があるのと同じように、Python3 は Python2 と互換性があると思います。
Python3 に Python2 と互換性のないコマンドがある理由がわかりません。
たとえば、コマンド
「こんにちは」を印刷
Python3 ではなく Python2 で動作します。なんで?
たとえば、C#4 が C#2 と互換性があるのと同じように、Python3 は Python2 と互換性があると思います。
Python3 に Python2 と互換性のないコマンドがある理由がわかりません。
Python 3 は Python 2 と同じ言語ではないためです。
Python のリリースは、通常、以前のバージョンとほとんど下位互換性があります。Python 2.7 は、Python 2.6 と大部分の下位互換性があります。
ただし、最初から、Python 3 (またはその設計プロジェクトの最初のコードネームである 3000) は明確に異なっていました。設計文書の 1つからの引用:
Python 3000 では、主に言語を合理化し、以前の設計ミスを取り除くために、Python に後方互換性のない変更が多数導入されます。)
そのため、Python 3 は下位互換性がなく、下位互換性のある変更で修正できなかった言語の特定のエラーを修正できません。
stdout
関数の代わりにステートメントを使用して書き込むことは、それらの変更の 1 つです。print
関数に置き換えられましたprint()
。
言語やソフトウェアのプロジェクトが異なれば、バージョン番号の意味について異なる基準が使用されます。Python は、メジャー - マイナー - ミクロ スキームに固執します。同じメジャー番号内のリリースは大部分が下位互換性があり、同じマイナー番号内のリリースにはバグ修正のみが含まれています。Python バージョン番号 FAQを参照してください。
Python のバージョンには、
A.B.C
またはA.B
.A
はメジャー バージョン番号です。言語の本当に大きな変更に対してのみ増分されます。B
マイナー バージョン番号であり、重大な変更が少ない場合に増分されます。C
はマイクロレベルで、バグ修正のリリースごとに増加します。バグ修正リリースの詳細については、PEP 6を参照してください。
また、Python は C# よりもかなり古いです。Python の開発は 1989 年に始まり、バージョン 2.0 が 2000 年に登場しました。一方、C# は 2002 年に登場したばかりです。おそらく、あと 10 年ほどで、後方互換性のない変更が行われることになるでしょう。
Python 2 では、print
がステートメントであるためです。しかしprint()
、Python 3 の関数になりました。ただし、print(...)
Python 2 でも有効な構文であり、from __future__ import print_function
Python 3 の print 関数を Python 2 で取得することもできます。
Python 3 が 2 と互換性があるとは思わないでください。他にも多くの変更があります。たとえば、reduce()
が削除され、ほとんどの組み込み関数は、以前はリストを返していたジェネレータを返すようになりました (例: map()
、zip()
、およびfilter()
)。