
💸 Скидки до 70% для бизнеса и финансов
Ловите лучшие слоты в каналах бизнес-тематик — только до 6 апреля!
Забрать скидку

18.5

🐍 Укус питона 🐍
5.0
19
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- Нативный
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
%keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
1 174.82₽1 174.82₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
🔥 Mutable vs Immutable в Python
В Python все данные — это объекты, и они делятся на изменяемые (mutable) и неизменяемые (immutable).
🔹 Неизменяемые (immutable): нельзя изменить после создания
✅
🔹 Изменяемые (mutable): можно изменять без создания нового объекта
✅
⚠️ Важный нюанс
Передача изменяемых объектов в функцию может привести к неожиданным изменениям:
✅ Вывод:
В Python все данные — это объекты, и они делятся на изменяемые (mutable) и неизменяемые (immutable).
🔹 Неизменяемые (immutable): нельзя изменить после создания
✅
int
, float
, str
, tuple
, frozenset
x = "hello"
x += " world" # Создается новый объект, а не изменяется старый
🔹 Изменяемые (mutable): можно изменять без создания нового объекта
✅
list
, dict
, set
, bytearray
lst = [1, 2, 3]
lst.append(4) # Список изменяется в той же области памяти
⚠️ Важный нюанс
Передача изменяемых объектов в функцию может привести к неожиданным изменениям:
def modify_list(lst):
lst.append(99) # Изменяет оригинальный список!
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 99]
✅ Вывод:
•
Используйте tuple
, если данные не должны изменяться.•
Будьте осторожны с изменяемыми объектами при передаче в функции.•
Если нужно копирование, используйте .copy()
или deepcopy()
.44
07:00
03.04.2025
imageИзображение не доступно для предпросмотра
⚙️ Отладка с sys._getframe в Python
Сегодня в коротком формате разберемся с тем, что же творится внутри CPython, когда функции вызывают друг друга: sys._getframe, f_back, f_globals, f_locals, а также создадим свои декораторы.
#Полезное
Сегодня в коротком формате разберемся с тем, что же творится внутри CPython, когда функции вызывают друг друга: sys._getframe, f_back, f_globals, f_locals, а также создадим свои декораторы.
#Полезное
158
15:00
02.04.2025
imageИзображение не доступно для предпросмотра
🖥 Друзья, если вы только начинаете осваивать Python или уже перешли к фреймворкам и сложным библиотекам, вам помогут авторские материалы многолетнего разработчика и преподавателя Python Дмитрия Читалова.
Уже размещены:
✅Основы Python
✅Продвинутый Python
✅Алгоритмы и структуры данных
❗️Сейчас еженедельно выкладываются уроки по Архитектуре и паттернам проектирования
Подписаться можно здесь.
Уже размещены:
✅Основы Python
✅Продвинутый Python
✅Алгоритмы и структуры данных
❗️Сейчас еженедельно выкладываются уроки по Архитектуре и паттернам проектирования
Подписаться можно здесь.
190
12:01
02.04.2025
imageИзображение не доступно для предпросмотра
🐍 GIL в Python: как это влияет на многопоточность
Global Interpreter Lock (GIL) — это механизм в CPython, который ограничивает выполнение Python-кода одним потоком за раз, даже на многопроцессорных системах.
🔹 Зачем нужен GIL?
Он предотвращает проблемы с управлением памятью и упрощает работу интерпретатора. Однако из-за него многопоточные программы не могут эффективно использовать несколько ядер процессора.
🔹 Когда GIL мешает?
✅ Решение:
Если нужна настоящая параллельность, используйте многопроцессорность (
Global Interpreter Lock (GIL) — это механизм в CPython, который ограничивает выполнение Python-кода одним потоком за раз, даже на многопроцессорных системах.
🔹 Зачем нужен GIL?
Он предотвращает проблемы с управлением памятью и упрощает работу интерпретатора. Однако из-за него многопоточные программы не могут эффективно использовать несколько ядер процессора.
🔹 Когда GIL мешает?
•
В CPU-интенсивных задачах (например, обработка данных, вычисления) многопоточность не дает прироста производительности.•
В I/O-интенсивных задачах (сетевые запросы, работа с файлами) GIL почти не влияет, так как потоки могут освобождать блокировку во время ожидания операций ввода-вывода.✅ Решение:
Если нужна настоящая параллельность, используйте многопроцессорность (
multiprocessing
), которая запускает отдельные процессы без GIL, или попробуйте альтернативные реализации Python, такие как Jython или PyPy.192
07:00
01.04.2025
Зачем нужно ключевое слово
Пример:
yield
в Python?yield
используется для создания генераторов, которые возвращают данные по мере запроса, вместо хранения всего результата в памяти.Пример:
def count_up_to(n):
count = 1
while count <= n:
yield count # Возвращает значение и приостанавливает выполнение
count += 1
for num in count_up_to(5):
print(num)
yield
позволяет приостанавливать и возобновлять выполнение функции, экономя память и упрощая работу с потоками данных.179
07:00
31.03.2025
⚡️ Как работает
✅ Пример:
super()
в Python?super()
позволяет вызывать методы родительского класса, обеспечивая правильное наследование и расширение функционала.✅ Пример:
class Parent:
def greet(self):
return "Hello from Parent"
class Child(Parent):
def greet(self):
return super().greet() + " and Child"
obj = Child()
print(obj.greet()) # "Hello from Parent and Child"
super()
особенно полезен при множественном наследовании, так как помогает вызывать методы родительских классов без явного указания их имен.229
15:00
28.03.2025
Что такое дескрипторы в Python и зачем они нужны?
Дескриптор — это объект, который управляет доступом к атрибутам класса через методы
✅ Пример:
Дескрипторы используются в свойствах (
Дескриптор — это объект, который управляет доступом к атрибутам класса через методы
get
, set
и delete
. Они позволяют гибко контролировать поведение атрибутов.✅ Пример:
class Descriptor:
def init(self, value=None):
self.value = value
def get(self, instance, owner):
print("Getting value")
return self.value
def set(self, instance, value):
print("Setting value")
self.value = value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 42 # Setting value
print(obj.attr) # Getting value → 42
Дескрипторы используются в свойствах (
property
), ORM, логировании доступа и валидации данных. Они помогают гибко управлять состоянием объектов и позволяют писать более чистый код.218
07:00
28.03.2025
⚙️ Как работает metaclass в Python?
В Python метаклассы управляют созданием классов, так же как классы управляют созданием объектов. Они позволяют автоматизировать и настраивать процесс создания классов.
✅ Пример:
Метаклассы позволяют добавлять атрибуты, проверять код, изменять поведение классов перед их созданием.
Это мощный инструмент, но его стоит использовать только при необходимости, например, в ORM, фреймворках и API.
В Python метаклассы управляют созданием классов, так же как классы управляют созданием объектов. Они позволяют автоматизировать и настраивать процесс создания классов.
✅ Пример:
class Meta(type):
def new(cls, name, bases, dct):
dct["custom_attr"] = 42
return super().new(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.custom_attr) # 42
Метаклассы позволяют добавлять атрибуты, проверять код, изменять поведение классов перед их созданием.
Это мощный инструмент, но его стоит использовать только при необходимости, например, в ORM, фреймворках и API.
235
15:00
26.03.2025
🔍 Как работает
В Python есть два специальных декоратора для методов класса:
✅ Пример:
Используйте
staticmethod
vs classmethod
в Python?В Python есть два специальных декоратора для методов класса:
@staticmethod
и @classmethod
. Они позволяют работать без создания экземпляра, но имеют ключевые различия.✅ Пример:
class Example:
class_attr = "Hello"
@staticmethod
def static_method():
return "I'm a static method"
@classmethod
def class_method(cls):
return f"Class method: {cls.class_attr}"
print(Example.static_method()) # I'm a static method
print(Example.class_method()) # Class method: Hello
@staticmethod
ведёт себя как обычная функция внутри класса, не имея доступа к атрибутам класса или экземпляра. @classmethod
, наоборот, получает ссылку на класс (cls
) и может изменять его атрибуты.Используйте
@staticmethod
для независимых функций, а @classmethod
, когда нужно работать с самим классом.218
07:00
26.03.2025
❓ Что делает метод
Метод
✅ Пример использования:
В отличие от
new
в Python и когда его использовать?Метод
new
отвечает за создание нового экземпляра класса перед его инициализацией в init
. Он используется в случаях, когда нужно контролировать процесс создания объекта, например, в синглтонах или при наследовании от неизменяемых типов (int
, str
, tuple
).✅ Пример использования:
class Singleton:
_instance = None
def new(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().new(cls)
return cls._instance
obj1 = Singleton()
obj2 = Singleton()
print(obj1 is obj2) # True (оба объекта — одна и та же ссылка)
В отличие от
init
, new
контролирует сам процесс создания объекта. Полезен для ограничения числа экземпляров и работы с неизменяемыми классами.221
07:00
25.03.2025
close
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
5.0
0 отзыва за 6 мес.
c
**fferuold@******.in
на сервисе с июня 2022
08.12.202323:11
5
Спасибо! Все отлично!

🐍 Укус питона 🐍
на сервисе с июня 2022
13.12.202315:08
Спасибо, был рад с вами работать. Надеюсь на дальнейшее сотрудничество.
Показать еще
Лучшие в тематике
Новинки в тематике
Выбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий