Когда дело доходит до управления ресурсами, такими как файлы или сетевые соединения, Python предоставляет один из самых удобных инструментов — контекстные менеджеры и конструкция with. Часто разработчики начинают с ручного закрытия ресурсов, что может привести к потенциальным утечкам
В стандартной ситуации, если нам требуется открыть файл, то код может выглядеть так:
file = open('example.txt', 'r')
content = file.read()
file.close()
Здесь, если в процессе чтения произойдет ошибка, файл может остаться открытым, что приводит к утечкам ресурсов. Конструкция with решает эту проблему:
with open('example.txt', 'r') as file:
content = file.read()
# Файл автоматически закрывается здесь
Как создать свой контекстный менеджер?
Вы можете реализовать собственный контекстный менеджер с помощью метода
__enter__()
и __exit__()
:class MyManager:
def __enter__(self):
print("Ресурс открыт")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Ресурс закрыт")
with MyManager() as manager:
print("Работаем с ресурсом")
При использовании
with
метод enter
вызывается в начале блока, а exit
— при выходе из него, даже если произошла ошибкаЖми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍6🤝1
В курс входит:
• 64 урока
• 16минут видео
• 251 тест
• 300 интерактивных задач
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍7🤝2
В этой статье:
• Генерация вредоносного кода с ChatGPT
• Простенький keylogger
🔊 Продолжить читать можешь на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥8🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Checkio — онлайн-платформа для обучения программированию и решения задач по кодированию на языке Python, решайте задачки на различных уровнях в виде островов
📌 Ссылочка: py.checkio.org
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍8
В этой шпаргалке собраны различные методы из библиотеки functools, помогут освежить тебе память или узнать что-то новое
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍6🤝5
📖 Искусственный интеллект и компьютерное зрение
⬇️ Скачать книгу
👉 Python Ready | #книга
Автор объясняет теоретические основы, алгоритмы и современные технологии, а также предлагает практические примеры для применения знаний
Автор: Коул Анирад
Год издания: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🤝2
Нижеперечисленные функции будут полезны начинающим, они помогут выявить новые возможности создания различных функций. Начинаем!
1. Особенности замыканий (closures):
Замыкание — это функция, которая «запоминает» свою лексическую область видимости,
inner
использует переменную x
из области видимости outer
, создавая замыкание:def outer(x):
def inner(y):
return x + y
return inner
add_five = outer(5)
print(add_five(10)) # 15
2. Поведение изменяемых и неизменяемых типов данных — Понимание работы памяти для изменяемых и неизменяемых типов важно, изменяемые объекты могут изменяться внутри функций:
def modify(lst):
lst.append(42)
my_list = [1, 2, 3]
modify(my_list)
print(my_list) # [1, 2, 3, 42]
3. Использование генераторов и функции `yield` — Генераторы создают элементы по одному, экономя память,
yield
приостанавливает выполнение функции и продолжает с того же места при следующем вызове:def gen(n):
for i in range(n):
yield i * i
print(list(gen(5)))
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7🤝2❤1
Рассмотрим создание простого таймера, а также улучшим его и добавим возможность работы в отдельном потоке, что поможет внедрять его в различные проекты. Изучим:
- Обратный отсчет с обновлением
- Добавление действия по завершении
- Использование многопоточности
- Создаем поток
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥60🤝7👍5👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Kaggle — Платформа для соревнований по анализу данных, где можно изучать Python через практические проекты и наборы данных
📌 Ссылочка: kaggle.com
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥7
В этой статье:
• Создание GUI
• Встроенное логирование
• Виджеты и контейнеры
🔊 Продолжить читать можешь на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4