Python Learning
32.7K subscribers
1.95K photos
8 videos
7 files
964 links
№ 4974297878

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
⚙️ inspect.currentframe()

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()

os.getloadavg() возвращает среднюю нагрузку на систему за последние 1, 5 и 15 минут. Это полезно для мониторинга производительности и загрузки CPU.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥1
⚙️ signal.set_wakeup_fd()

signal.set_wakeup_fd() позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤‍🔥1
⚙️ rich.print()

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

loguru.logger — это мощный и удобный логгер, который упрощает логирование в Python. Он поддерживает цветной вывод, автоматическое форматирование и удобное управление логами.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🗿2🔥1
⚙️ pathlib.Path.resolve()

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

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
⚙️ contextlib.suppress()

contextlib.suppress() позволяет временно подавлять определённые исключения в блоке кода. Это удобная альтернатива try-except, если нам не нужно обрабатывать ошибку, а просто игнорировать её.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
⚙️ inspect.signature()

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

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
⚙️ contextlib.nullcontext()

contextlib.nullcontext() создаёт пустой контекстный менеджер, который не выполняет никаких действий. Это полезно, когда нужно условно использовать with, но в некоторых случаях контекстный менеджер не требуется.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥1
⚙️ importlib.resources.files()

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
⚙️ gc.freeze()

gc.freeze() фиксирует все уже существующие объекты в памяти, исключая их из будущих сборок мусора. Это полезно для оптимизации долгоживущих процессов, например, серверов или CLI-приложений, снижая нагрузку на сборщик мусора.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥1
⚙️ threading.excepthook()

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

sys.unraisablehook позволяет перехватывать исключения, которые не могут быть обработаны обычным try-except, например, ошибки в деструкторах (__del__). Это полезно для отладки и логирования неожиданных ошибок.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥1
⚙️ faulthandler.dump_traceback()

faulthandler.dump_traceback() позволяет принудительно вывести текущий стек вызовов без аварийного завершения программы. Это полезно для отладки зависших процессов или анализа выполнения кода.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
⚙️ sys.getallocatedblocks()

sys.getallocatedblocks() возвращает количество блоков памяти, выделенных интерпретатором Python. Это полезно для отладки утечек памяти и анализа работы сборщика мусора.

🔗 Документация

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3