Python Glossary English

все Python 3astфункция

ast.iter_fields()

вспомогательные функции

Перебирает пары (имя поля, значение) узла в порядке _fields. Позволяет работать с любым узлом, не зная его класса заранее.

Синтаксис

for name, value in ast.iter_fields(node): ...

Значение — что угодно: другой узел, список узлов, строка, число или None, так что перед обходом проверяйте тип. Атрибуты позиции (lineno, col_offset) полями не являются и сюда не попадают — они перечислены в _attributes. Узлы-потомки удобнее получать iter_child_nodes, а iter_fields нужен, когда важны и имена полей.

Примеры

import ast
node = ast.parse('a + 1', mode='eval').body
for name, value in ast.iter_fields(node):
    print(name, type(value).__name__)  # → left Name / op Add / right Constant

См. также

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