Python Glossary English

все Python 3astпонятие

ast.Import

импорт

Узел инструкции import a, b.c as d: names — список узлов alias с полями name (полное имя через точки) и asname.

Синтаксис

ast.Import(names)

Одна инструкция с несколькими модулями даёт один Import с несколькими alias, а не несколько узлов. Имя через точку не дробится: 'import os.path' — alias(name='os.path'), хотя в пространство имён попадает только os. Импорт внутри функции или try — тот же Import, только глубже в дереве, поэтому искать импорты надо через ast.walk, а не перебором tree.body.

Примеры

import ast
imp = ast.parse('import os.path, numpy as np').body[0]
print(type(imp).__name__, [(a.name, a.asname) for a in imp.names])  # → Import [('os.path', None), ('numpy', 'np')]
import ast
src = 'import json\ndef f():\n    import re\n    from x import y'
mods = [a.name for n in ast.walk(ast.parse(src)) if isinstance(n, ast.Import) for a in n.names]
print(sorted(mods))  # → ['json', 're']

См. также

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