lambda明らかにキーワードです。これはパーサーによって認識される特別な単語であり、そうでなければ。の定義に含まれますidentifier。
lambda意味的には演算子ではありません。演算子は単なる関数ですが、異なる構文で呼び出されます。+演算子をadd関数に置き換えることを想像できます。追加されたすべてのプログラムは、より冗長になり、読みにくくなりますが、それでも書き込むことができます。一方lambda、言語構成は関数に置き換えることができませんでした。は、値とlambda x: x+1の結果を計算するだけではありません。これは、このコンテキストでは値ではないためです(は、定義されている関数のパラメーターの名前であり、ラムダ本体のコードです)。xx+1xx+1
リンクした同じページに次の情報があります:http://docs.python.org/py3k/reference/lexical_analysis.html#operators
次のトークンは演算子です。
+ - * ** / // %
<< >> & | ^ ~
< > <= >= == !=
これが、演算子に関するサブセクションの内容全体です。このことから、言語のトークンを定義する文脈では、「演算子」は記号演算子であるのに対し、キーワードのセクションでは、「そうでなければ識別子になるこれらのものはキーワードである」と明示的に綴っています。そのため、、、、などnotのキーワード演算子はリストされていないと思います。しかし、パーサーがそれらを別々のクラスと見なすかどうかに関係なく、キーワードである意味演算子であるものは確かにあります。isin
http://docs.python.org/py3k/reference/expressions.html#summarylambdaが演算子として記述されている理由がわかりません。私は確かにそうしません。厳密に言えば、「優先順位が最も低い演算子である」と明示的に言うのではなく、列見出しが「演算子」であるテーブルlambdaにリストするだけです。lambdaおそらくそれは単なる便宜でした。lambda優先順位の低いものとして記述することは、Pythonがどのように解析するかを明確にする良い方法ですlambda x: x + 1(理論的にはまたはのいずれかである可能性があります(lambda x: x) + 1)lambda x: (x + 1)。