TGViewer
Channel Public Channel
Python Learning

Python Learning

@python_per_month

№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Subscribers
28.2K
Photos
2K
Videos
8
Links
1K

Showing posts older than #3277 · Back to latest

Older Posts 20 shown
Post #3276 3.84K
⚙️ sys.setswitchinterval()

sys.setswitchinterval() позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.

Python Learning 👩‍💻
  • 👍 8
  • 🔥 1
Post #3274 3.66K
⚙️ inspect.getgeneratorstate()

inspect.getgeneratorstate() позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.

Python Learning 👩‍💻
  • 👍 7
  • 🔥 1
Post #3271 3.76K
⚙️ types.new_class()

types.new_class() позволяет динамически создавать новые классы во время выполнения программы. Это полезно для метапрограммирования, создания классов с динамическими атрибутами и автоматической генерации API.

Python Learning 👩‍💻
  • 👍 14
  • 🔥 2
Post #3270 4.2K
⚙️ sys._current_frames()

sys._current_frames() позволяет получить стеки вызовов всех активных потоков в программе. Это полезно для отладки многопоточных приложений.

Python Learning 👩‍💻
  • 👍 12
  • 🔥 1
Post #3269 4.06K
🚫 Антипаттерн недели: Ловушка с оператором is при сравнении строк

В Python оператор is проверяет, ссылаются ли две переменные на один и тот же объект в памяти, а не равны ли их значения. Это может приводить к неожиданным ошибкам при сравнении строк.

✔️ Используйте == для сравнения значений строк, а не is.

Python Learning
👩‍💻
  • 👍 15
  • 🔥 2
Post #3268 4.07K
⚙️ dataclasses.astuple()

dataclasses.astuple() преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.

Python Learning 👩‍💻
  • 👍 10
Post #3265 4.1K
  • 👍 9
  • 🔥 2
Post #3264 4.34K
⌛ Что будет выведено при выполнении кода?

Пояснение
⬇️
Функция filter() применяет лямбда-функцию lambda x: x % 2 == 0, оставляя только чётные числа. В результате получаем [2, 4, 6]. Код выполняется корректно.


Python Learning
👩‍💻
  • 🔥 5
  • 👍 2
Post #3263 4.51K
⚙️ sys.call_tracing()

sys.call_tracing() позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace(). Это полезно для профилирования и отладки.

Python Learning 👩‍💻
  • 👍 13
  • 🤔 1
Post #3261 4.28K
⚙️ pathlib.Path.read_text()

pathlib.Path.read_text() — удобный способ прочитать содержимое текстового файла в строку. Этот метод автоматически открывает файл, читает его содержимое и закрывает его после чтения.

Python Learning 👩‍💻
  • 👍 20
  • 🔥 3
Post #3260 4.18K
⚙️ contextlib.ExitStack

contextlib.ExitStack позволяет управлять несколькими контекстными менеджерами динамически.

Python Learning 👩‍💻
  • 👍 15
Post #3259 4.92K
  • 👍 16
  • 🎉 3
  • 🏆 2
Post #3258 4.73K
⌛ Что будет выведено при выполнении кода?

Пояснение
⬇️
Функция enumerate() нумерует элементы списка. Параметр start=1 задаёт начало нумерации с 1, а не с 0, поэтому вывод будет 1 a, 2 b, 3 c. Код выполняется корректно.


Python Learning
👩‍💻
  • 👍 12
  • 🔥 2
Post #3256 4.4K
❓ Вопрос на собеседовании

Как работает copy-on-write (COW) в Python и в каких случаях он применяется?

Ответ ⬇️
Copy-on-write (COW) — это оптимизация, при которой объект копируется только при попытке его изменения. В Python это особенно заметно при использовании fork() в многопроцессных программах: дочерний процесс получает копию памяти родительского процесса, но реальные копии данных создаются только при их изменении.

Это помогает эффективно использовать память при работе с процессами, но может привести к неожиданным накладным расходам, если изменять большие объёмы данных после fork().


Пример использования ⚙️
import os

data = [1] * 10**6 # Большой список

pid = os.fork()

if pid == 0: # Дочерний процесс
data[0] = 42 # Копирование происходит только здесь!
print("Дочерний процесс завершён")
else:
print("Родительский процесс")


Python Learning
👩‍💻
  • 👍 11
Post #3255 4.16K
⚙️ sys.setprofile()

Метод sys.setprofile() позволяет установить функцию профилирования, которая вызывается при каждом вызове, возврате или исключении в Python-коде. Это полезно для отладки, анализа производительности и трассировки выполнения кода.

Python Learning 👩‍💻
  • 👍 15
  • 🔥 1
Post #3254 4.66K
⚙️ functools.singledispatch

Метод functools.singledispatch позволяет создавать перегруженные функции на основе типа первого аргумента. Это полезно для написания обобщённого кода без сложных if isinstance(...).

Python Learning 👩‍💻
  • 👍 12
  • ❤‍🔥 1
Post #3252 4.48K
⚙️ threading.Timer()

Метод threading.Timer() позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.

Python Learning 👩‍💻
  • 👍 24
  • 🔥 1
Post #3251 4.56K
🚫 Антипаттерн недели: Использование mutable default arguments

В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.

✔️ Используйте None в качестве значения по умолчанию и создавайте новый объект внутри функции.

Python Learning
👩‍💻
  • 👍 26
  • ❤‍🔥 4
  • 😁 2
  • 🔥 1
Post #3249 5.1K
❓ Вопрос на собеседовании

Как работает cooperative multitasking в Python, и почему asyncio не использует потоки?

Ответ ⬇️
В Python asyncio использует кооперативную многозадачность (cooperative multitasking), где задачи передают управление друг другу явно (await). Это отличается от потоков (threading), которые работают конкурентно, но ограничены GIL.

Асинхронность полезна для операций ввода-вывода (сетевые запросы, работа с файлами), так как позволяет одной задаче выполняться, пока другая ждёт результата.


Пример использования ⚙️
import asyncio

async def task(name, delay):
await asyncio.sleep(delay)
print(f"Задача {name} завершена")

async def main():
await asyncio.gather(task("A", 2), task("B", 1))

asyncio.run(main())


Python Learning
👩‍💻
  • 👍 13
  • ❤‍🔥 1
Post #3248 5.14K
⚙️ signal.setitimer()

Метод signal.setitimer() позволяет устанавливать таймер, который автоматически отправляет сигнал процессу через заданные интервалы времени. Это полезно для периодического выполнения кода без создания потоков.

Python Learning 👩‍💻
  • 👍 12
  • 🔥 3
  • ❤‍🔥 1
  • 🤔 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →