回答編集履歴
2
ちょっと日本語が
answer
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
* `print`は単純な標準出力への書き出しですが、時には標準では無い所へ書き出しやフォーマットされた書き出しを行いたい場合があります。関数の場合は関数を置き換えるだけになりますが、文の場合は括弧を追加する必要があるなど、他の関数へ置換することが簡単できません。
|
7
7
|
* `print`が文であった場合、その拡張は文として拡張する必要があり、将来的な文法拡張で問題が出てくる場合があります。
|
8
8
|
|
9
|
-
言ってしまえば、Python 2で`print`を文にしてしまっ
|
9
|
+
言ってしまえば、Python 2で`print`を文にしてしまっていたことが言語設計上の**間違い**だったということです。Python 3では互換性を捨てでも、この間違いをこのタイミングで修正し、将来に供えたかったと言うことだと思います。
|
1
文法がおかしかった
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
では、なぜ文から関数に変更したのか?[PEP 3105](https://www.python.org/dev/peps/pep-3105/)のRationaleにいくつかの理由が書いてあります。要約するとだいたい次のような理由です。
|
4
4
|
|
5
5
|
* `print`が行うことは通常の関数として定義することが可能です。文として実装する必要性がありません。また、構文としてしか実現できないもの(`if`等がそうです)で無い限り、構文に含めた形で実装すべきではありません。
|
6
|
-
* `print`は単純な標準出力への書き出しですが、時には標準では無い所へ書き出しやフォーマットされた書き出しを行いたい場合があります。関数の場合は関数を置き換えるだけになりますが、文の場合は括弧を追加する必要があるなど、
|
6
|
+
* `print`は単純な標準出力への書き出しですが、時には標準では無い所へ書き出しやフォーマットされた書き出しを行いたい場合があります。関数の場合は関数を置き換えるだけになりますが、文の場合は括弧を追加する必要があるなど、他の関数へ置換することが簡単できません。
|
7
7
|
* `print`が文であった場合、その拡張は文として拡張する必要があり、将来的な文法拡張で問題が出てくる場合があります。
|
8
8
|
|
9
9
|
言ってしまえば、Python 2で`print`を文にしてしまったいたことが言語設計上の**間違いだった**ということです。Python 3では互換性を捨てでも、この間違いをこのタイミングで修正し、将来に供えたかったと言うことだと思います。
|