1

以下のその他の例:

 if (a = xyz() ) > abc: 

本当に理由を知りたいのですが、悪臭のようなものですか?

注:私は文法を知っていますが、Pythonが他の多くの言語(c、java ...など)がサポートしているような文法をサポートしていない理由を尋ねています

4

2 に答える 2

4

PythonデザインFAQから:

Python式での代入を許可しない理由は、これらの他の言語でよく見られる、見つけにくいバグです。これは、次の構成によって引き起こされます。

    if (x = 0) {
        // error handling
    }
    else {
        // code that only works for nonzero x
    }

エラーは単純なタイプミスです。変数xに0を割り当てるx=0が書き込まれましたが、比較x==0は確かに意図されたものです。

FAQで説明されているように、式で割り当てを使用するためのほとんどの「ユースケース」は、代わ​​りにイテレータを使用することでカバーできます。

于 2012-07-13T07:56:54.213 に答える
0

Pythonの哲学を覚えておいてください:それを行うための明白な方法は1つ、できれば1つだけでなければなりません。
それは私には明白に聞こえません!
また、この答えも確認することをお勧めします:
Python代入が値を返さないのはなぜですか

于 2012-07-13T08:03:02.873 に答える