python - область видимости переменной после использования оператора with - PullRequest
0 голосов
/ 25 октября 2018

Я не нашел ответа на этот вопрос в stackoverflow, поэтому я подумал, что было бы полезно задать его и получить здесь -

Я объявляю новый словарь после открытия файла,следующим образом -

with open('some_file.txt','r') as f:
    dict = json.loads(f.read()) #converts text to a dictionary

мой вопрос - смогу ли я получить доступ к содержимому dict даже после окончания области действия with.

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

В области видимости Python определяется функциями.Область отступа отсутствует (аналогична области видимости «скобка» в других языках).Партия with влияет только на объект f.

0 голосов
/ 25 октября 2018

Да, в Python * область действия переменной заканчивается только тогда, когда заканчивается блок кода, в котором она определена, а оператор with не является блоком кода согласно документации :

Ниже приведены блоки: модуль, тело функции и определение класса.Каждая команда, введенная в интерактивном режиме, является блоком.Файл сценария (файл, предоставленный интерпретатору в качестве стандартного ввода или указанный в качестве аргумента командной строки для интерпретатора), является блоком кода.Команда сценария (команда, указанная в командной строке интерпретатора с параметром -c) является блоком кода.Строковый аргумент, передаваемый встроенным функциям eval () и exec (), является блоком кода.

0 голосов
/ 25 октября 2018

Да, вы не сможете получить доступ к f, все остальное - честная игра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...