2016-03-23 6 views
-1

enter image description here一覧Scintilla.Netとコード補完のための発現

私は式の中で有効なキーワードのリストを必要とします。 "keyword"モジュールですべてのキーワードを取得できますが、例えば "raise"や "print"はラムダ式では使用できません。キーワードリストを減らすにはどうすればよいですか?

keyword.kwlist利回り

[ 'アサート'、 '休憩'、 'クラス'、 '継続' 'として' '偽'、 'なし'、 'TRUE'、 'と'、 ' for '、' from '、' global '、' if '、' import '、' in '、' is ' ''、 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 1つは式で使用できますか?

+0

すべてのキーワードが機能します問題は「表現」ではなく「文」でなければなりません(なぜなら、他の質問はここでは重複したコメントではないと感じ、適切な場合は再投票に投票します) –

+0

たとえば、 "lambda:raise Exception()"が機能しないため、 "raise"は式の有効なキーワードではないようです。 "print"はPython 2ではなく、Python 3で有効です。 – Rauhotz

+1

'raise Exception()'は式ではない文です... dupeを読む –

答えて

3

ここで間違った質問をしています。ラムダ式がキーワードを使用できるかどうかは、実際に有効なものとは関係ありません。

https://docs.python.org/2.7/reference/expressions.html#lambda

lambda_expr  ::= "lambda" [parameter_list]: expression 
old_lambda_expr ::= "lambda" [parameter_list]: old_expression 

重要なのは、ラムダの本体が式であるということです。言い換えれば、値に評価できるもの。つまり、文を入れることはできません。

どのような組み合わせのキーワードを使用して式を作成すればよいのでしょうか?

ドキュメントも同様であるコードの別のブロックに言及している:

def name(arguments): 
    return expression 

は、別の言い方をすれば、ラムダの本体は、return文に配置することができる何か...表現にする必要があります。

関連する問題