|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.06.2019, 09:57 | #1 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
Нелокальная область видимости.
Код:
Когда мы находимся внутри func_inner, переменная x, определённая в пер- вой строке func_outer находится ни в локальной области видимости (опреде- ление переменной не входит в блок func_inner), ни в глобальной области ви- димости (она также и не в основном блоке программы). Мы объявляем, что хо- тим использовать именно эту переменную x, следующим образом: nonlocal x. Вопрос: Почему переменная х определённая в первой строке func_outer находится ни в локальной области видимости?. Ведь локальная область видимости это объявление переменной внутри функции. Последний раз редактировалось bITA666; 12.06.2019 в 10:00. |
12.06.2019, 11:34 | #2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
12.06.2019, 12:51 | #3 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
так мы же уже определили в функции func_inner, переменную и создали в ней тип области nonlocal. В функции func_outer тоже определили переменную. Так о каком определении идет речь?
Последний раз редактировалось bITA666; 12.06.2019 в 12:55. |
12.06.2019, 13:20 | #4 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
1) Функция func_outer создаёт локальную переменную в своей локальной области видимости.
2) Входим внутрь func_inner. У неё появляется своя, отдельная локальная область видимости, а локальная область функции func_outer, соответственно, скрывается. 3) Директива nonlocal предписывает не создавать локальную переменную (то есть в локальной области видимости func_inner), а взять готовую в локальной области повыше. Что непонятно-то? |
12.06.2019, 13:26 | #5 | |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
Цитата:
Последний раз редактировалось bITA666; 12.06.2019 в 13:31. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Еще раз про область видимости. | Dimka-novitsek | Общие вопросы C/C++ | 13 | 20.09.2013 23:26 |
Область видимости | chertovich | Общие вопросы Delphi | 10 | 24.09.2011 03:21 |
область видимости классов | sashonk | JavaScript, Ajax | 1 | 15.09.2010 11:19 |
область видимости | Dimarik | Общие вопросы .NET | 5 | 21.02.2010 21:32 |
область видимости ? | artem779 | Общие вопросы Delphi | 3 | 14.09.2007 09:34 |