Как мне получить доступ к переменным внешних функций внутри замыкания (python 2.6)?

Из википедии

Мне нужно получить доступ к переменным внешних функций аналогично использованию ключевого слова nonlocal из python 3.x. Есть ли способ сделать это в Python 2.6? (Не обязательно использовать нелокальное ключевое слово)

1 ответ

Решение

Я всегда использую вспомогательные объекты в этом случае:

def outerFunction():
    class Helper:
        val = None
    helper = Helper()

    def innerFunction():
        helper.val = "some value"

Это также удобно, когда вы запускаете новый поток, который должен записать значение во внешнюю область функции. В таком случае, helper будет передан в качестве аргумента innerFunction (функция потока).

Другие вопросы по тегам