用法:
class ast.comprehension(target, iter, ifs, is_async)
理解中的一个
for
子句。target
是用于每个元素的引用 - 通常是Name
或Tuple
节点。iter
是要迭代的对象。ifs
是测试表达式列表:每个for
子句可以有多个ifs
。is_async
表示理解是异步的(使用async for
而不是for
)。该值是一个整数(0 或 1)。>>> print(ast.dump(ast.parse('[ord(c) for line in file for c in line]', mode='eval'), ... indent=4)) # Multiple comprehensions in one. Expression( body=ListComp( elt=Call( func=Name(id='ord', ctx=Load()), args=[ Name(id='c', ctx=Load())], keywords=[]), generators=[ comprehension( target=Name(id='line', ctx=Store()), iter=Name(id='file', ctx=Load()), ifs=[], is_async=0), comprehension( target=Name(id='c', ctx=Store()), iter=Name(id='line', ctx=Load()), ifs=[], is_async=0)])) >>> print(ast.dump(ast.parse('(n**2 for n in it if n>5 if n<10)', mode='eval'), ... indent=4)) # generator comprehension Expression( body=GeneratorExp( elt=BinOp( left=Name(id='n', ctx=Load()), op=Pow(), right=Constant(value=2)), generators=[ comprehension( target=Name(id='n', ctx=Store()), iter=Name(id='it', ctx=Load()), ifs=[ Compare( left=Name(id='n', ctx=Load()), ops=[ Gt()], comparators=[ Constant(value=5)]), Compare( left=Name(id='n', ctx=Load()), ops=[ Lt()], comparators=[ Constant(value=10)])], is_async=0)])) >>> print(ast.dump(ast.parse('[i async for i in soc]', mode='eval'), ... indent=4)) # Async comprehension Expression( body=ListComp( elt=Name(id='i', ctx=Load()), generators=[ comprehension( target=Name(id='i', ctx=Store()), iter=Name(id='soc', ctx=Load()), ifs=[], is_async=1)]))
相关用法
- Python ast.MatchClass用法及代码示例
- Python ast.ListComp用法及代码示例
- Python ast.Lambda用法及代码示例
- Python ast.IfExp用法及代码示例
- Python ast.Return用法及代码示例
- Python ast.Subscript用法及代码示例
- Python ast.alias用法及代码示例
- Python ast.Slice用法及代码示例
- Python ast.NamedExpr用法及代码示例
- Python ast.MatchAs用法及代码示例
- Python ast.Try用法及代码示例
- Python ast.MatchValue用法及代码示例
- Python ast.Assert用法及代码示例
- Python ast.Break用法及代码示例
- Python ast.Load用法及代码示例
- Python ast.Set用法及代码示例
- Python ast.MatchStar用法及代码示例
- Python ast.Expr用法及代码示例
- Python ast.Attribute用法及代码示例
- Python ast.ImportFrom用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ast.comprehension。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。