Описание тега python-nonlocal
Ключевое слово нелокального Python 3 отмечает переменную как взятую из родительской области и аналогично ключевому слову global.
3
ответа
Передача переменных обратно в класс в Python
Я новичок, пожалуйста, потерпите меня. Ниже мой код: class Player(): name = "UnknownName" stren = 10 dex = 10 con = 10 intel = 10 wis = 10 cha = 10 def randAssign(self): global stren, dex, con, intel, wis, cha stat_List = [stren, dex, con, intel, wi…
12 апр '18 в 15:45
1
ответ
Как мне получить доступ к переменным внешних функций внутри замыкания (python 2.6)?
Из википедии Мне нужно получить доступ к переменным внешних функций аналогично использованию ключевого слова nonlocal из python 3.x. Есть ли способ сделать это в Python 2.6? (Не обязательно использовать нелокальное ключевое слово)
11 сен '10 в 19:32
10
ответов
Нелокальное утверждение Python
При чем тут Питон nonlocal заявление сделать (в Python 3.0 и позже)? Там нет документации на официальном сайте Python и help("nonlocal") тоже не работает.
11 авг '09 в 17:36
5
ответов
В чем разница между нелокальной и глобальной переменной?
Я изучаю концепции языков программирования. Я нашел терминологию "нелокальный" в синтаксисе Python. Что означает нелокальный в питоне??
19 окт '15 в 09:44
1
ответ
Где нелокальные ()?
Как получить нелокальные переменные для текущей области? Функции vars, locals, а также globals существует, но есть ли функция, чтобы получить nonlocals? Почему нелокалы не указаны при звонке vars? Обновить Моя проблема в том, что нет способа перечис…
23 янв '12 в 07:34
2
ответа
UnboundLocalError при использовании += в списке. Почему здесь необходим нелокальный режим, когда прямой вызов __iadd__ работает нормально?
Рассмотрим этот код: def main(): l = [] def func(): l += [1] func() print(l) if __name__ == '__main__': main() Это произведет: Traceback (most recent call last): File "/Users/tahsmith/Library/Preferences/PyCharm2017.1/scratches/scratch_21.py", line …
22 май '17 в 07:28
3
ответа
Рубиновый эквивалент нелокального питона
Я пытаюсь написать закрытие в Ruby. Это код, написанный на Python: def counter(): x = 0 def increment(y): nonlocal x x += y print(x) return increment Есть ли "нелокальный" эквивалент в Ruby, чтобы я мог получить доступ и внести изменения в переменну…
09 дек '12 в 01:49
1
ответ
Попытка использовать переменные вне цикла for дает SyntaxError: не найдено связывания для нелокального 'max_'
def min_diff(arry_): max_ =0 temp_ =0 for i in arry_: nonlocal max_ nonlocal temp_ if i > max_: nonlocal max_ nonlocal temp_ temp_ = max_ max_ =i return max_-temp_ Я хочу использовать max_ а также temp_ вне цикла, но я получаю ошибку SyntaxError:…
08 ноя '16 в 08:13
10
ответов
Нелокальное ключевое слово в Python 2.x
Я пытаюсь реализовать замыкание в Python 2.6, и мне нужно получить доступ к нелокальной переменной, но кажется, что это ключевое слово не доступно в Python 2.x. Как получить доступ к нелокальным переменным в замыканиях в этих версиях Python?
06 июл '10 в 22:31
0
ответов
Как получить полное пространство имен с помощью Python code.interact?
Как я могу получить доступ ко всему пространству имен, включая нелокальные имена, когда, например, выполняю code.interact в Python (v. 3.6)? Часто предлагается следующее решение или какой-либо эквивалент: code.interact(local={**globals(), **locals()…
14 авг '17 в 14:17
1
ответ
Как / каково значение переменной во вложенной функции, для которой объявлено нелокальное значение?
def make_test_dice(*outcomes): """Return a die that cycles deterministically through OUTCOMES. >>> dice = make_test_dice(1, 2, 3) >>> dice() 1 >>> dice() 2 >>> dice() 3 >>> dice() 1 """ assert len(outcome…
09 апр '18 в 14:03
0
ответов
Переменные состояния в Python: когда выбирать классы, нелокальные переменные или атрибуты функций
Существует (как минимум) три различных способа отслеживания информации о состоянии для функций в python (примеры, представленные без какого-либо значимого способа использования информации о состоянии, очевидно): ООП Классы: class foo: def __init__(s…
23 май '18 в 20:00
2
ответа
Синтаксическая ошибка нелокального оператора в Python
Я хотел бы протестировать пример использования нелокального оператора, указанного в ответе на этот вопрос: def outer(): x = 1 def inner(): nonlocal x x = 2 print("inner:", x) inner() print("outer:", x) но когда я пытаюсь загрузить этот код, я всегда…
10 янв '13 в 18:00
2
ответа
Понимание нелокальности в Python 3
Я пытаюсь понять область видимости переменных Python 3 и nonlocal, Рассмотрим следующую функцию (это всего лишь пример): def build_property(something): def deco(func): def getter(self): return getattr(self, something) def setter(self, value): setatt…
11 янв '14 в 14:06
1
ответ
Python: изменить локальную переменную метода внутри внутреннего метода
Я пишу тестовый метод под названием, скажем, test_foo (используя pytest). Я проверяю поведение функции, foo, который принимает в качестве аргумента другую функцию, get, foo звонки get итеративно, условно на возвращаемое значение getНапример: def foo…
12 фев '16 в 17:09
2
ответа
Python, как я могу изменить значение переменной в родительской области?
Например: оператор assginment объявит новую локальную переменную. foo = 'global' def func1(): foo = 'func1' def func2(): foo = 'local variable in func2' использовать глобальное объявление будет использовать foo в глобальном: def func2(): global foo …
21 мар '11 в 02:57
3
ответа
Переменная изменения вложенной функции во внешней функции не работает
def some_func(a): def access_a(): print(a) access_a() выводит значение a, Однако, если я хочу изменить a во вложенной функции вот так: def some_func(a): def change_a(): a += 1 print(a) change_a() это поднимает UnboundLocalError исключение. я знаю a …
22 дек '16 в 08:32
2
ответа
Python: как разрешить "внутренней функции" изменять нелокальные переменные в нескольких "внешних функциях"
Предположим, у меня есть функция, которая имеет большой участок кода, повторяемый в разных местах внутри функции, я могу сделать следующее: def foo(): def bar(): # do some stuff bar() # do some other stuff bar() Я могу "читать" переменные, которые н…
12 апр '18 в 18:18
1
ответ
Почему эта программа на Python имеет следующий вывод?
def makeInc (x, step): def next(): nonlocal x, step x = x + step return x return next x = makeInc (0, 1) y = makeInc (0, 10) x1=x() x2=x() y1=y() y2=y() print( x1, x2, y1, y2) Вывод 1 2 10 20. Я не уверен, почему он дает эти выводы, кто-нибудь может…
20 дек '13 в 06:16
2
ответа
SyntaxError нелокальный питон в определении метода
Я набираю в интерактивном режиме следующий код: class A: a=42 def foo(): nonlocal a но у меня есть SyntaxError: no binding for nonlocal 'a' found, Но я ожидаю, что результат разрешения nonlocal a будет 42, потому что ближайшая окружающая область для…
28 фев '14 в 13:35