TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #225

@pythonotes

Python Заметки

Прегледи2,460Број на прегледи
Објавено15 мар.15.03.2021 г., 09:01
Содржина

Содржина на објавата

Кроме стандартных системных ивентов аудита можно вызывать свои ивенты. Для этого используется функция sys.audit() import sys def my_hook(event, args): if event == 'mymodule.myevent': print('Catched!', args) sys.addaudithook(my_hook) sys.audit('mymodule.myevent', 1, 2, 3) Просто указываем имя ивента первым аргументом и далее любые аргументы. Такое будет полезно если вы разрабатываете серьезную библиотеку в которой вопрос безопасности стоит не на последнем месте. Дать возможность другим разработчикам добавлять свои проверки будет хорошей практикой! Хотя никто не запрещает придумать свой способ использования перехвата подобных событий. Особенно это будет знакомо тем, кто пишет приложения на PyQt. Очень уж похоже на систему сигнал/слот в режиме DirectConnection. ▫️ следует вызывать sys.audit() ПОСЛЕ проверки данных но ДО фактического применения и исполнения логики. Это поможет избежать лишней проверки данных вне основной логики и прервать операцию в нужный момент. ▫️ в имени ивента рекомендуется использовать неймспейс с именем вашего модуля. #tricks