Python Glossary English

Python 3.3+inspectфункция

inspect.getclosurevars()

классы и функции

Показывает, на какие внешние имена ссылается функция: замыкание, глобальные, встроенные и неразрешённые — именованным кортежем ClosureVars.

Синтаксис

inspect.getclosurevars(func)

Значения берутся на момент вызова getclosurevars, а не на момент определения функции. В unbound попадают не только опечатки: функция смотрит на все имена кода, и имя атрибута (x.real) окажется там же, хотя ошибки нет. Порядок в unbound — порядок множества, сортируйте перед выводом. Для встроенных функций — TypeError.

Примеры

import inspect
rate = 2
def make(k):
    def f(x):
        return x.real * k * rate + len([]) + undefined_name
    return f
cv = inspect.getclosurevars(make(3))
print(cv.nonlocals, cv.globals)  # → {'k': 3} {'rate': 2}
print(list(cv.builtins), sorted(cv.unbound))  # → ['len'] ['real', 'undefined_name']

См. также

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