5 Aug 2026, 13:01 UTC294 views6 reactionsread 8 August 2026 ⚡️ functools.cache вместо самодельного мемо — просто и эффективно
Зачем писать свои кеши, если Python уже умеет это из коробки?
С версии 3.9 появился @cache — аналог lru_cache, но проще и быстрее, если тебе не нужен лимит.
✅ Было так (ручной мемо):
_cache = {}
def fib(n):
if n in _cache:
return _cache[n]
if n <= 1:
return n
_cache[n] = fib(n-1) + fib(n-2)
return _cache[n]
🧠 Работае…
❤3👍3
30 Jul 2026, 12:12 UTC504 views1 reactionsread 8 August 2026 👩💻 DSL в Python через __call__ и __getitem__ — красиво, читаемо, Pythonic
Хочешь, чтобы твой код выглядел как язык сам по себе?
Python позволяет строить мини-языки внутри кода — без библиотек, просто на магии dunder-методов.
✔️ Начнём с __call__
Он делает объект вызываемым, как функцию:
class Hello:
def __call__(self, name):
return f"Привет, {name}!"
h = Hello()
print(h("Мир")) # Привет, Мир!
Полез…
❤1
30 Jul 2026, 08:16 UTC391 views2 reactionsread 8 August 2026 🚰 Стриминг больших данных через генераторы и yield from
Когда данных слишком много — миллионы строк в файле, бесконечные события или поток логов — держать всё в памяти нельзя. Тут спасают генераторы и ключевое слово yield from, позволяющее строить цепочки ленивых итераторов.
📦 Чтение файла построчно
def read_file(path):
with open(path, "r") as f:
for line in f:
yield line.strip()
for row in…
❤1👍1
23 Jul 2026, 12:35 UTC627 views3 reactionsread 8 August 2026 🧬 Структурные шаблоны (match/case) с объектами – не только для строк и чисел!
Начиная с Python 3.10, match/case позволяет не просто сравнивать, но разбирать структуры объектов.
📌 Пример с классами:
class Point:
def __init__(self, x, y): self.x, self.y = x, y
def handle(p):
match p:
case Point(x=0, y=y):
print(f"На оси Y: y={y}")
case Point(x=x, y=0):
print(f"На оси …
👍2❤1
17 Jul 2026, 09:16 UTC829 views5 reactionsread 8 August 2026 🖥 Python и with: Чистый код и надёжное управление ресурсами
Ещё одна мощная и идиоматичная конструкция в Python — это менеджеры контекста и оператор with. Они кардинально упрощают работу с ресурсами, которые требуют обязательной "очистки" после использования, например, файлы, сетевые соединения или блокировки потоков.
Представьте, что вы открываете файл для записи. Крайне важно его потом закрыть, иначе данные могут…
🔥3❤1👍1
14 Jul 2026, 12:43 UTC698 views2 reactionsread 8 August 2026 🔥 Частая ошибка: try/except пожирает всё
try:
do_something()
except:
pass
⛔️ Это плохая практика, которая уничтожает отладку, ломает контроль потока и маскирует реальные ошибки.
🤯 Почему это опасно?
🟢 1. Ловит всё подряд:
- KeyboardInterrupt — Ctrl+C не сработает, ты не сможешь остановить процесс.
- SystemExit — sys.exit() не завершит программу.
- SyntaxError, MemoryError, ImportError — всё будет съед…
❤1👍1
6 Jul 2026, 09:31 UTC843 views7 reactionsread 8 August 2026 🖥 Ленивый дебаг с f-строками
Если вы часто пишете print("var =", var), чтобы проверить значение переменной, то этот трюк сэкономит вам кучу времени.
Начиная с Python 3.8, в f-строках можно использовать знак равно =.
➡️Как это было раньше:
user = "Alex"
age = 25
print(f"user = {user}, age = {age}")
# Вывод: user = Alex, age = 25
📌Как делают профи:
Просто добавьте = в конце переменной внутри фигурных скобок. Pytho…
❤4👍3
3 Jul 2026, 15:49 UTC906 views5 reactionsread 8 August 2026 👩💻 SQLite в Python: база прямо в файл, без сервера
Когда не нужен полноценный PostgreSQL, а просто надо где-то хранить данные — SQLite идеально.
✔️ Легковесно
✔️ Без установки
✔️ Всё в одном .db-файле
🔧 Пример: создать базу и таблицу
import sqlite3
conn = sqlite3.connect("users.db") # создаёт файл, если нет
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY…
❤3👍2
30 Jun 2026, 11:43 UTC950 views6 reactionsread 8 August 2026 👩💻 Разница между is и ==
Многие путают is и ==, но их предназначение разное:
• is проверяет, являются ли два объекта одной и той же сущностью в памяти.
• == проверяет, равны ли их значения.
✔️ Пример:
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # True (указывает на тот же объект)
print(a == b) # True (списки одинаковые)
print(a is c) # False (разные объекты)
print(a == c) # True (одинаковое содержимое…
❤4👍2
26 Jun 2026, 12:29 UTC≈1,100 views3 reactionsread 8 August 2026 👩💻 Разница между copy() и deepcopy()
• copy() создает поверхностную копию объекта (ссылки на вложенные элементы сохраняются).
• deepcopy() создает полную независимую копию объекта.
✔️ Пример:
import copy
a = [[1, 2], [3, 4]]
b = copy.copy(a)
c = copy.deepcopy(a)
a[0][0] = 99
print(b) # [[99, 2], [3, 4]] (изменилось)
print(c) # [[1, 2], [3, 4]] (осталось прежним)
🗣️ Используйте deepcopy(), если хотите избеж…
👍3
19 Jun 2026, 11:57 UTC≈1,180 views5 reactionsread 8 August 2026 👩💻 Парсинг сайтов с requests + BeautifulSoup: просто, быстро, эффективно
Если тебе нужно вытянуть данные с HTML-страницы — это классика.
requests тянет страницу, BeautifulSoup разбирает её в структуру, которую легко обрабатывать.
👍 Базовый шаблон парсера
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")
➡️ soup — это…
👍4❤1
14 Jun 2026, 14:03 UTC934 views2 reactionsread 8 August 2026 👩💻 `@property`: не просто синтаксический сахар
В Python у тебя есть мощный способ скрыть логику за обычным доступом к атрибутам — и имя ему @property.
Пример:
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def area(self):
return math.pi * self._radius ** 2
Теперь:
c = Circle(3)
print(c.area) # 28.27...
➡️ area выглядит как поле, но за ним — код. Удобно, …
👍2
Showing the 12 most recent of 20 posts we hold for @pytstart. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.