Как мне получить доступ к переменным внешних функций внутри замыкания (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
(функция потока).