Python Glossary English

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

ast.ImportFrom

импорт

Узел from module import name: module — имя модуля или None, names — список alias, level — число точек относительного импорта.

Синтаксис

ast.ImportFrom(module, names, level)

У 'from . import x' поле module равно None, а не '.' — точки уходят в level, и код, склеивающий module + '.' + name, на относительных импортах падает. 'from x import *' даёт alias с name='*'. 'from __future__ import annotations' — тоже ImportFrom, хотя компилятор обрабатывает его особо.

Примеры

import ast
for src in ['from os import path as p', 'from .. import utils', 'from x import *']:
    n = ast.parse(src).body[0]
    print(repr(n.module), n.level, [a.name for a in n.names])
# → 'os' 0 ['path'] / None 2 ['utils'] / 'x' 0 ['*']

См. также

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