Пояснение
Декоратор @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
faulthandler.dump_traceback()
позволяет принудительно вывести текущий стек вызовов без аварийного завершения программы. Это полезно для отладки зависших процессов или анализа выполнения кода.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
sys.getallocatedblocks()
возвращает количество блоков памяти, выделенных интерпретатором Python. Это полезно для отладки утечек памяти и анализа работы сборщика мусора.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3