🐍 Укус питона 🐍
Kanalga Telegram’da o‘tish
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
Ko'proq ko'rsatish2 334
Obunachilar
Ma'lumot yo'q24 soatlar
-117 kunlar
-3730 kunlar
Postlar arxiv
2 334
🔥 Mutable vs Immutable в Python
В 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().2 334
🐍 GIL в Python: как это влияет на многопоточность
Global Interpreter Lock (GIL) — это механизм в CPython, который ограничивает выполнение Python-кода одним потоком за раз, даже на многопроцессорных системах.
🔹 Зачем нужен GIL?
Он предотвращает проблемы с управлением памятью и упрощает работу интерпретатора. Однако из-за него многопоточные программы не могут эффективно использовать несколько ядер процессора.
🔹 Когда GIL мешает?
• В CPU-интенсивных задачах (например, обработка данных, вычисления) многопоточность не дает прироста производительности.
• В I/O-интенсивных задачах (сетевые запросы, работа с файлами) GIL почти не влияет, так как потоки могут освобождать блокировку во время ожидания операций ввода-вывода.
✅ Решение:
Если нужна настоящая параллельность, используйте многопроцессорность (multiprocessing), которая запускает отдельные процессы без GIL, или попробуйте альтернативные реализации Python, такие как Jython или PyPy.2 334
Зачем нужно ключевое слово
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 позволяет приостанавливать и возобновлять выполнение функции, экономя память и упрощая работу с потоками данных.2 334
⚡ Ищешь работу или стажировку в IT?
Тогда тебе точно будут полезны эти каналы:
БИГТЕХ – стажировки и вакансии
👉 ПОДПИСАТЬСЯ
Young & Junior - вакансии IT
👉 ПОДПИСАТЬСЯ
Young Стажёр - стажировки ИТ
👉 ПОДПИСАТЬСЯ
Junojobs
👉 ПОДПИСАТЬСЯ
Макс из < codereview />
👉 ПОДПИСАТЬСЯ
Помни! Твои скиллы достойны лучшего оффера.
Подпишись на эти каналы и рекрутеры однозначно заметят тебя.
