В Python менеджеры контекста используются для управления ресурсами, такими как файлы или сетевые соединения, автоматически освобождая их после использования. Они реализуются с помощью методов
__enter__
и __exit__
.with open('file.txt', 'r') as file:
content = file.read()
Здесь файл автоматически закроется после завершения блока
with
, даже если внутри него возникнет ошибка.🗣️ Менеджеры контекста полезны для автоматического управления ресурсами и обработки исключений.
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается, как настроить автоматический деплой Telegram-бота на сервер с использованием GitHub Actions. Это поможет ускорить обновление кода и минимизировать ошибки при ручной загрузке.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В 2010 году пользователь Stack Overflow не справился с задачей на собеседовании. Обсуждение способов решения этого задания стало одной из самых популярных тем на платформе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте Python-скрипт, который кэширует данные с внешнего API, сохраняя их на определенное время. Когда срок кэша истекает, данные должны автоматически обновляться при следующем запросе.
•
python app.py fetch
— получает данные из кэша, а если кэш истек, то заново запрашивает данные и обновляет кэш.Решение задачи
import time
import json
import requests
from pathlib import Path
CACHE_FILE = Path("cache.json")
CACHE_TTL = 60 # время жизни кэша в секундах
def update_cache():
data = requests.get("https://api.example.com/data ").json()
cache_data = {"data": data, "timestamp": time.time()}
with open(CACHE_FILE, "w") as file:
json.dump(cache_data, file)
return data
def fetch_data():
if CACHE_FILE.exists():
with open(CACHE_FILE, "r") as file:
cache = json.load(file)
if time.time() - cache["timestamp"] < CACHE_TTL:
print("Данные из кэша:", cache["data"])
return cache["data"]
print("Обновление кэша...")
return update_cache()
# Запрос кэшированных данных
fetch_data()
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня поговорим о объектах, объектной архитектуре и способах взаимодействия с ними на примере языков программирования Python и JavaScript. Получилось небольшое исследование, противопоставляющее прототипирование и ООП.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM