用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。