Python Community
12.9K subscribers
1.26K photos
37 videos
15 files
741 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Оператор with в python

При работе с файлами или сетевыми соединения вам необходимо их закрывать даже в случае появления ошибки.

Вместо использования try или, например, finally, мы можем воспользоваться оператором with.

Оператор вызывает __enter__ у обрабатывающего класса, а в случае появления ошибки или окончания работы с объектом — __exit__.

Также, можно использовать декоратор contextmanager из contextlib для обработки файла используя yield.

#теория #операторы
⚡️ Разница между global и nonlocal

global
— объявление, которые говорит о том, что перечисленные идентификаторы стоит воспринимать как глобальные. То есть, все изменения внутри функции будут влиять на внешнюю переменную.

nonlocalоператор, уведомляющий среду, что стоит работать не с локальной переменной, а уровнем выше.

То есть, если вы создадите функцию внутри функции и используете nonlocal, то будет использоваться не глобальная переменная, а та, что в функции-родителя (смотреть method2).

Стоит отметить, что в отличии от global, nonlocal требует, что бы переменная уже была определена.

Ну и как всегда — документация :)

#теория #операторы