为了使用Scintilla.Net完成代码,我需要在表达式中有效的关键字列表。您可以通过"关键字"获取所有关键字。模块,但例如" raise"和"打印"不能在lambda表达式中使用。如何获得简化关键字列表?
keyword.kwlist产生
['错误','无',' True','和',' as',& #39;断言','打破','课程','继续',' def',' del&# 39;,' elif',' else','除了','最后',' for',&# 39;来自',' global',' if',' import',' in',''''' ;,' lambda',' nonlocal',' not','或','传递',' ;提高','返回','尝试','而','',''' ]
哪些可用于表达式?
答案 0 :(得分:3)
你在这里问错了。 lambda表达式是否可以使用关键字与实际有效的内容无关。
https://docs.python.org/2.7/reference/expressions.html#lambda
lambda_expr ::= "lambda" [parameter_list]: expression
old_lambda_expr ::= "lambda" [parameter_list]: old_expression
重要的是,lambda的身体是一个表达。或者换句话说,可以评估为某个值的东西。这意味着它不能包含语句。
因此,弄清楚可以使用哪些关键字组合来形成表达式,并且您将得到答案。
该文档还提到了另一个类似的代码块:
def name(arguments):
return expression
换句话说,lambda的主体必须是可以放在return语句中的东西......表达式。