🐍 Укус питона 🐍
2.51K subscribers
1.04K photos
23 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
👩‍💻 collections.deque — очередь с двумя концами

deque из модуля collections — это двусторонняя очередь, которая работает быстрее списка при добавлении и удалении элементов с краёв.

➡️ Пример:

from collections import deque

queue = deque([1, 2, 3])
queue.append(4) # добавляем справа
queue.appendleft(0) # добавляем слева
queue.pop() # удаляем справа
queue.popleft() # удаляем слева

print(queue) # deque([1, 2, 3])


📌 Удобно для реализации очередей, стеков и работы с потоками данных
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 frozenset — неизменяемое множество

frozenset — это множество, элементы которого нельзя изменять после создания.

Оно поддерживает те же операции, что и обычный set: объединение, пересечение, разность.


➡️ Пример:

a = frozenset([1, 2, 3])
b = frozenset([3, 4, 5])

print(a & b) # пересечение → frozenset({3})


📌 Удобно, когда нужно использовать множество как ключ в словаре или элемент другого множества
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 globals() — доступ к глобальным переменным

Функция globals() возвращает словарь всех глобальных переменных текущего модуля.
Можно использовать для динамического доступа к переменным по имени.

➡️ Пример:

x = 42
name = "Python"

print(globals()["x"]) # 42
print(globals()["name"]) # Python


📌 Полезно для отладки, метапрограммирования и работы с динамическими именами, но в обычном коде лучше использовать напрямую
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем используется метод append() в Python и когда его применять?

Метод append() добавляет элемент в конец списка. Это один из самых распространённых способов динамически расширять коллекцию.

Пример:

fruits = ["apple", "banana"]
fruits.append("orange")
print(fruits)
# ➜ ['apple', 'banana', 'orange']


📌В этом примере append() добавляет новый элемент "orange" в конец списка.

append() удобно использовать при работе с динамическими данными: сборе результатов в циклах, формировании очередей, накоплении элементов для дальнейшей обработки. Этот метод делает работу со списками гибкой и интуитивно понятной
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 hasattr — проверка наличия атрибута

Функция hasattr() позволяет проверить, есть ли у объекта указанный атрибут.
Возвращает True или False.

➡️ Пример:

class User:
def __init__(self, name):
self.name = name

u = User("Анна")

print(hasattr(u, "name")) # True
print(hasattr(u, "age")) # False


📌 Полезно для динамической работы с объектами и безопасного доступа к их свойствам
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 getattr — доступ к атрибутам по имени

Функция getattr() возвращает значение атрибута объекта по строковому имени.

Если атрибута нет, можно указать значение по умолчанию.


➡️ Пример:

class User:
def __init__(self, name):
self.name = name

u = User("Анна")

print(getattr(u, "name")) # Анна
print(getattr(u, "age", "неизвестно")) # неизвестно


📌 Удобно для динамического доступа к свойствам объектов, например при работе с данными из JSON или API
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 property — управление доступом к атрибутам

Декоратор @property позволяет превратить метод класса в атрибут, добавив к нему логику при чтении или записи.

➡️ Пример:

class User:
def __init__(self, name):
self._name = name

@property
def name(self):
return self._name.title()

u = User("анна")
print(u.name) # Анна


📌 Удобно для валидации, форматирования и инкапсуляции, не меняя интерфейс класса
Please open Telegram to view this post
VIEW IN TELEGRAM