在(lambda)表达式

时间:2016-03-23 18:40:56

标签: python python-2.7 scintillanet

enter image description here

为了使用Scintilla.Net完成代码,我需要在表达式中有效的关键字列表。您可以通过"关键字"获取所有关键字。模块,但例如" raise"和"打印"不能在lambda表达式中使用。如何获得简化关键字列表?

keyword.kwlist产生

['错误','无',' True','和',' as',& #39;断言','打破','课程','继续',' def',' del&# 39;,' elif',' else','除了','最后',' for',&# 39;来自',' global',' if',' import',' in',''''' ;,' lambda',' nonlocal',' not','或','传递',' ;提高','返回','尝试','而','',''' ]

哪些可用于表达式?

1 个答案:

答案 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语句中的东西......表达式。