Библиотека Python разработчика | Книги по питону
Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq
Показати більше📈 Аналітичний огляд Telegram-каналу Библиотека Python разработчика | Книги по питону
Канал Библиотека Python разработчика | Книги по питону (@bookpython) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 312 підписників, посідаючи 7 334 місце в категорії Технології та додатки та 36 889 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 312 підписників.
За останніми даними від 12 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -83, а за останні 24 години на -1, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 5.49%. Протягом перших 24 годин після публікації контент зазвичай збирає 2.76% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 006 переглядів. Протягом першої доби публікація в середньому набирає 505 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 2.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як numbers, yield, модуль, none, декоратор.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍
По всем вопросам @evgenycarter
РКН clck.ru/3Ko7Hq”
Завдяки високій частоті оновлень (останні дані отримано 13 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
(x for x in range(100) if random() > 0.5)
If you write an iterable and want to add the hint, define the __length_hint__ method. If the length is known for sure, use __len__ instead.
If you use an iterable and want to know its expected length, use operator.length_hint.__hash__ method. This method can return any integer as long as the only requirement is met: equal objects should have equal hashes (not vice versa).
You also should avoid using mutable objects as keys, because once the object becomes not equal to the old self, it can't be found in a dictionary anymore.
There is also one bizarre thing that might surprise you during debugging or unit testing:
In : class A:
...: def __init__(self, x):
...: self.x = x
...:
...: def __hash__(self):
...: return self.x
...:
In : hash(A(2))
Out: 2
In : hash(A(1))
Out: 1
In : hash(A(0))
Out: 0
In : hash(A(-1)) # sic!
Out: -2
In : hash(A(-2))
Out: -2
In CPython -1 is internally reserved for error states, so it's implicitly converted to -2.in locals() или in globals(), чтобы проверить переменная существует в Python, разница только:
in locals() проверяет если переменная объявлена в локальной зоне видимости
in globals() проверяет если переменная объявлена в глобальной зоне видимости
Подписывайтесь на канал 👉@pythonofffmultiprocessing.Pool is for you. It spawns multiple processes and delegates tasks to them automatically. Simply create a pool with Pool(number_of_processes) and run p.map with the list of inputs.
In : import math
In : from multiprocessing import Pool
In : inputs = [i ** 2 for i in range(100, 130)]
In : def f(x):
...: return len(str(math.factorial(x)))
...:
In : %timeit [f(x) for x in inputs]
1.44 s ± 19.2 ms per loop (...)
In : p = Pool(4)
In : %timeit p.map(f, inputs)
451 ms ± 34 ms per loop (...)== и is
Недавно в чате наши подписчики затрагивали эту тему, поэтому мы решили разложить всё по полочкам, чтобы в дальнейшем не возникало вопросов.
Итак, оператор == проверяет равенство значений двух объектов. А оператор is в свою очередь проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.
Однако Python в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны некоторые казусы, как в примере.
Подписывайтесь на канал 👉@pythonofffenumerate генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. Эти кортежи можно распаковать еще в заголовке for
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс, рис.1.
Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2.
Подписывайтесь на канал 👉@pythonoffflen(), but this is not the rule:
In : len(range(10000))
Out: 10000
In : gen = (x ** 2 for x in range(10000))
In : len(gen)
...
TypeError: object of type 'generator' has no len()
The straightforward solution is to use an intermediate list:
In : len(list(gen))
Out: 10000
Though fully functional, this solution requires enough memory to store all the yielded values. The simple idiom allows to avoid such a waste:
In : sum(1 for _ in gen)
Out: 10000
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
