sys.setswitchinterval()
позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
inspect.currentframe()
позволяет получить текущий стек вызовов и информацию о выполняемом коде. Это полезно для отладки, логирования и анализа исполнения программы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥1
Пояснение
Декоратор @lru_cache (maxsize=2) кэширует результаты вызовов функции fibonacci(n), ускоряя вычисления. fibonacci(5) рекурсивно вычисляет сумму fibonacci(4) + fibonacci(3), что даёт 5. Код выполняется без ошибок.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥2😁2
👍6
os.getloadavg()
возвращает среднюю нагрузку на систему за последние 1, 5 и 15 минут. Это полезно для мониторинга производительности и загрузки CPU.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥1
signal.set_wakeup_fd()
позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
rich.print()
— это удобный способ красиво выводить текст, таблицы и логи в терминал с поддержкой цветного форматирования. Библиотека rich
делает консольные приложения более читаемыми и наглядными.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11👍11
finally
при работе с ресурсамиВ Python важно гарантированно освобождать ресурсы (файлы, соединения, сокеты). Если этого не делать, возможны утечки памяти и зависание программы.
finally
или конструкцию with
для автоматического управления ресурсами.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
loguru.logger
— это мощный и удобный логгер, который упрощает логирование в Python. Он поддерживает цветной вывод, автоматическое форматирование и удобное управление логами.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🗿2🔥1
Path.resolve()
из модуля pathlib
позволяет получить абсолютный путь к файлу или директории, автоматически обрабатывая символические ссылки и относительные пути. Это удобный способ работы с файловой системой в Python.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
contextlib.suppress()
позволяет временно подавлять определённые исключения в блоке кода. Это удобная альтернатива try-except
, если нам не нужно обрабатывать ошибку, а просто игнорировать её.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
inspect.signature()
позволяет получать информацию о сигнатуре функции, включая её аргументы, значения по умолчанию и аннотации. Это полезно для метапрограммирования, генерации документации и анализа кода во время выполнения.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
contextlib.nullcontext()
создаёт пустой контекстный менеджер, который не выполняет никаких действий. Это полезно, когда нужно условно использовать with
, но в некоторых случаях контекстный менеджер не требуется.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥1
importlib.resources.files()
позволяет безопасно работать с ресурсами внутри пакетов без необходимости вручную определять пути. Это удобный способ загружать файлы внутри модулей.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤🔥1🏆1
Пояснение
Counter подсчитывает количество повторений элементов в списке. 'apple' встречается 3 раза, а 'grape' отсутствует, поэтому counter['grape'] возвращает 0, а не KeyError. Код выполняется без ошибок.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
👍7⚡2
gc.freeze()
фиксирует все уже существующие объекты в памяти, исключая их из будущих сборок мусора. Это полезно для оптимизации долгоживущих процессов, например, серверов или CLI-приложений, снижая нагрузку на сборщик мусора.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥1
threading.excepthook()
позволяет перехватывать исключения, возникшие в потоках, что полезно для логирования и предотвращения неожиданного завершения программы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥1
В Python ключи в
dict
должны быть неизменяемыми (immutable). Если использовать изменяемые объекты (списки, множества), это приведёт к TypeError
, так как такие объекты нехешируемы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
sys.unraisablehook
позволяет перехватывать исключения, которые не могут быть обработаны обычным try-except
, например, ошибки в деструкторах (__del__
). Это полезно для отладки и логирования неожиданных ошибок.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤🔥1