Python Glossary English

Python 3.5+astпонятие

ast.AsyncFunctionDef

async

Узел определения корутины async def: те же поля, что у FunctionDef, — имя, аргументы, тело, декораторы, аннотация возврата.

Синтаксис

ast.AsyncFunctionDef(name, args, body, decorator_list, returns=None, type_comment=None, type_params)

Это отдельный класс, а не подкласс FunctionDef: isinstance(node, ast.FunctionDef) для async def даёт False, и NodeVisitor с одним visit_FunctionDef пропускает все корутины. Обычно заводят visit_AsyncFunctionDef = visit_FunctionDef. Наличие await внутри тела на тип узла не влияет — его определяет только слово async.

Примеры

import ast
node = ast.parse('async def fetch(url):\n    return url').body[0]
print(type(node).__name__, node.name, node.args.args[0].arg)  # → AsyncFunctionDef fetch url
print(isinstance(node, ast.FunctionDef))  # → False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности