en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

🐍 Укус питона 🐍

🐍 Укус питона 🐍

Open in Telegram

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Show more
2 334
Subscribers
No data24 hours
-117 days
-3730 days
Attracting Subscribers
Oct '26
October '260
in 0 channels
September '260
in 0 channels
Get PRO
August '260
in 0 channels
Get PRO
July '260
in 0 channels
Get PRO
June '260
in 0 channels
Get PRO
May '260
in 0 channels
Get PRO
April '260
in 0 channels
Get PRO
March '26
+2
in 0 channels
Get PRO
February '26
+2
in 0 channels
Get PRO
January '26
+5
in 0 channels
Get PRO
December '25
+1
in 0 channels
Get PRO
November '25
+3
in 0 channels
Get PRO
October '25
+5
in 0 channels
Get PRO
September '25
+5
in 0 channels
Get PRO
August '25
+7
in 0 channels
Get PRO
July '25
+6
in 0 channels
Get PRO
June '25
+4
in 0 channels
Get PRO
May '25
+3
in 0 channels
Get PRO
April '25
+53
in 0 channels
Get PRO
March '25
+9
in 0 channels
Get PRO
February '25
+11
in 0 channels
Get PRO
January '25
+10
in 0 channels
Get PRO
December '24
+8
in 0 channels
Get PRO
November '24
+9
in 0 channels
Get PRO
October '24
+9
in 0 channels
Get PRO
September '24
+15
in 0 channels
Get PRO
August '24
+11
in 0 channels
Get PRO
July '24
+15
in 0 channels
Get PRO
June '24
+10
in 0 channels
Get PRO
May '24
+20
in 0 channels
Get PRO
April '24
+17
in 0 channels
Get PRO
March '24
+25
in 0 channels
Get PRO
February '24
+18
in 1 channels
Get PRO
January '24
+12
in 0 channels
Get PRO
December '23
+7
in 1 channels
Get PRO
November '23
+232
in 8 channels
Get PRO
October '23
+13
in 1 channels
Get PRO
September '23
+14
in 0 channels
Get PRO
August '23
+18
in 0 channels
Get PRO
July '23
+21
in 0 channels
Get PRO
June '23
+9
in 0 channels
Get PRO
May '23
+17
in 0 channels
Get PRO
April '23
+27
in 0 channels
Get PRO
March '23
+48
in 0 channels
Get PRO
February '23
+50
in 0 channels
Get PRO
January '23
+77
in 0 channels
Get PRO
December '22
+359
in 0 channels
Get PRO
November '22
+259
in 0 channels
Get PRO
October '22
+823
in 0 channels
Get PRO
September '22
+1 769
in 0 channels
Get PRO
August '22
+1 898
in 0 channels
Date
Subscriber Growth
Mentions
Channels
26 October0
25 October0
24 October0
23 October0
22 October0
21 October0
20 October0
19 October0
18 October0
17 October0
16 October0
15 October0
14 October0
13 October0
Channel Posts
Массивы в pattern matching. В качестве шаблонов также могут выступать массивы. Подобным шаблоны также могут содержать либо ко
Массивы в pattern matching. В качестве шаблонов также могут выступать массивы. Подобным шаблоны также могут содержать либо конкретные значения, либо переменные, которые передаются элементы массивов, либо символ прочерка _, если элемент массива не важен. В данном случае функция print_people принимает массив, который, как предполагается, состоит из трех элементов, рассмотрим их в следующей части. 🐍 Укус питона // 💬 Чат // #теория #pattern_matching #массивы

2
👩‍💻 Динамическое создание классов — метапрограммирование в чистом виде В Python классы — это тоже объекты, и их можно создавать "на лету" с помощью функции type(). Это открывает путь к динамическому API, автоматическим моделям и DSL. ➡️ Пример: def make_model(name, **fields): return type(name, (object,), fields) User = make_model("User", name="Анна", age=25) print(User.name) # Анна admin = User() admin.role = "admin" print(admin.role) # admin 📌 Здесь type() создаёт новый класс User прямо во время исполнения.
236
3
Ответ:
225
4
Что выведет код? x = 0 def outer(): x = 1 def inner(): nonlocal x x += 1 return x print("A", inner(), x) x = 5 print("B", inner(), x) outer() print("G", x)
194
5
No text...
200
6
👩‍💻 Контракты через аннотации — не просто подсказки типов Аннотации типов (type hints) — это не только помощь IDE. С их помощью можно внедрять контроль логики исполнения — проверять типы, значения и инварианты прямо во время работы программы. ➡️ Пример: from typing import get_type_hints def enforce_types(func): hints = get_type_hints(func) def wrapper(*args, **kwargs): for name, arg in zip(hints, args): if not isinstance(arg, hints[name]): raise TypeError(f"{name} должен быть {hints[name].__name__}") return func(*args, **kwargs) return wrapper @enforce_types def greet(name: str, age: int): print(f"{name}, {age}") greet("Анна", 25) # ✅ greet("Анна", "25") # ❌ TypeError 📌 Здесь аннотации становятся частью исполняемого контракта, а не просто документацией.
193
7
👩‍💻 WeakRef — как избежать утечек памяти в Python Иногда объект больше не нужен, но на него всё ещё ссылаются другие части программы. Обычная ссылка удерживает объект в памяти, а слабая ссылка (weak reference) — нет. Она не мешает сборщику мусора удалить объект, если больше нет сильных ссылок ➡️ Пример: import weakref class Data: def __init__(self, name): self.name = name def __del__(self): print(f"{self.name} удалён") obj = Data("Test") ref = weakref.ref(obj) print(ref()) # <__main__.Data object at ...> del obj print(ref()) # None — объект собран GC 📌 weakref.ref() создаёт слабую ссылку: объект может быть удалён, даже если ссылка ещё существует.
164
8
Ответ:
159
9
Что выведет код? import itertools lst = [[1, 2], [3]] it = itertools.chain.from_iterable(lst) print(next(it)) lst.append([4, 5]) print(list(it))
159
10
No text...
170
11
👩‍💻 Протокол дескрипторов — скрытый механизм свойств и ORM В Python за @property, staticmethod, classmethod и даже ORM-поля стоит единый механизм — дескрипторы. Это объекты, которые управляют доступом к атрибутам через методы __get__, __set__, __delete__ ➡️ Пример: class LoggedAttribute: def __init__(self, name): self.name = name def __get__(self, instance, owner): value = instance.__dict__.get(self.name) print(f"Получено {self.name} = {value}") return value def __set__(self, instance, value): print(f"Изменено {self.name} = {value}") instance.__dict__[self.name] = value class User: age = LoggedAttribute("age") u = User() u.age = 30 print(u.age) 📌 При обращении к u.age срабатывают методы дескриптора, а не прямой доступ к атрибуту.
161
12
👩‍💻 Протокол итерации — как работает цикл for под капотом В Python любой объект можно сделать итерируемым, если он реализует протокол итерации — методы __iter__() и __next__(). Это основа работы for, генераторов, списковых включений и даже файлов ➡️ Пример: class Counter: def __init__(self, limit): self.limit = limit self.value = 0 def __iter__(self): return self def __next__(self): if self.value < self.limit: self.value += 1 return self.value raise StopIteration for i in Counter(3): print(i) # 1 2 3 📌 Цикл for просто вызывает next() до тех пор, пока не появится StopIteration.
147
13
Ответ:
153
14
Что выведет код? class A: def __eq__(self, o): return isinstance(o, A) class B: def __eq__(self, o): return isinstance(o, B) __hash__ = object.__hash__ s = set() try: s.add(A()) except TypeError: print("A") b = B() s.add(b) print("B", b in s)
164
15
❓ Зачем используется метод replace() в Python и когда его применять? Метод replace() возвращает новую строку, в которой все вхождения указанной подстроки заменены на другую. Это удобный способ быстро изменить текст без сложных регулярных выражений. ✅Пример: text = "Python is hard, but Python is fun!" new_text = text.replace("Python", "Coding") print(new_text) # ➜ Coding is hard, but Coding is fun! 📌В этом примере replace() заменяет все вхождения слова "Python" на "Coding" replace() удобно использовать при очистке данных, форматировании строк, замене символов и шаблонов в текстах. Метод не изменяет исходную строку, что делает его безопасным для повторного использования данных
151
16
No text...
196
17
👩‍💻 Мемоизация — ускорение функций без переписывания логики Мемоизация — это техника кэширования результатов функций. Если функция вызывается с теми же аргументами, результат возвращается из памяти, а не вычисляется заново ➡️ Пример: from functools import lru_cache @lru_cache(maxsize=None) def fib(n): if n < 2: return n return fib(n-1) + fib(n-2) print(fib(35)) # быстро! 📌 Здесь @lru_cache запоминает все вызовы fib(). Без него вычисление числа Фибоначчи 35 заняло бы секунды, а с ним — доли миллисекунды.
222
18
Ответ:
199
19
Что выведет код? import asyncio async def worker(): await asyncio.sleep(0.05) return "ok" async def main(): t = asyncio.create_task(worker()) try: await asyncio.wait_for(asyncio.shield(t), timeout=0.01) except asyncio.TimeoutError: print("timeout") print(t.cancelled(), t.done()) print(await t) asyncio.run(main())
197
20
No text...
167