質問するログイン新規登録

回答編集履歴

2

ちょっと日本語が

2018/01/28 05:25

投稿

raccy
raccy

スコア21784

answer CHANGED
@@ -6,4 +6,4 @@
6
6
  * `print`は単純な標準出力への書き出しですが、時には標準では無い所へ書き出しやフォーマットされた書き出しを行いたい場合があります。関数の場合は関数を置き換えるだけになりますが、文の場合は括弧を追加する必要があるなど、他の関数へ置換することが簡単できません。
7
7
  * `print`が文であった場合、その拡張は文として拡張する必要があり、将来的な文法拡張で問題が出てくる場合があります。
8
8
 
9
- 言ってしまえば、Python 2で`print`を文にしてしまっいたことが言語設計上の**間違いだった**ということです。Python 3では互換性を捨てでも、この間違いをこのタイミングで修正し、将来に供えたかったと言うことだと思います。
9
+ 言ってしまえば、Python 2で`print`を文にしてしまっいたことが言語設計上の**間違い**だったということです。Python 3では互換性を捨てでも、この間違いをこのタイミングで修正し、将来に供えたかったと言うことだと思います。

1

文法がおかしかった

2018/01/28 05:25

投稿

raccy
raccy

スコア21784

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では互換性を捨てでも、この間違いをこのタイミングで修正し、将来に供えたかったと言うことだと思います。