重複の可能性:
式とステートメント
Pythonの式とステートメントの違いは何ですか?
「 yieldを式として使用する」というPythonジェネレーターを学ぶまで、この質問について考えたことはありません。
また、「yieldを式として使用する」というPythonジェネレーターのコンテキストでこの質問を説明できますか?
式を評価して値を返すことができます。任意の式をステートメントとして使用することもできます。
言い換えれば、あなたが書くことができればa = ...
、それ...
は式です。だから2*3
とzip(x,y)
は表現です。
のようなものraise Exception
はステートメントですが、式ではありません。を書くことはできませんa = (raise Exception)
。
式であるyieldはb = (yield a)
、ジェネレーターで有効なコードであることを意味します。ジェネレータのsend()
メソッドを使用する場合、b
は渡した値に設定されます。
式には、識別子、リテラル、演算子のみが含まれます。演算子には、算術演算子とブール演算子、関数呼び出し演算子()、サブスクリプション演算子[]などが含まれ、任意のPythonオブジェクトであるある種の「値」に減らすことができます。
一方、ステートメント は、Pythonコードの1行(または数行)を構成できるすべてのものです。式もステートメントであることに注意してください。
それがあなたを助けることを願っています:)
私はそれを次のように要約します:
もちろん、この種の削減には注意点があります。式は、その評価の一部として何かを行う場合があります。しかし、それでも最終的には価値があります。