Python Glossary English

Python 3.8+sysфункция

sys.audit()

аудит

Вызывает событие аудита с именем и аргументами: все хуки, добавленные через sys.addaudithook(), получают его по очереди.

Синтаксис

sys.audit(event, *args)

Пока хуков нет, вызов почти ничего не стоит, так что события можно расставлять в библиотеке заранее. Имя принято писать как «модуль.действие», чтобы не столкнуться со встроенными (os.chdir, open, subprocess.Popen). Если хук поднимет исключение, оно вылетит прямо из sys.audit() — это способ запретить операцию, поэтому событие ставят до действия, а не после.

Примеры

import sys
def ban(event, args):
    if event == 'bank.transfer' and args[0] > 1000:
        raise RuntimeError('перевод заблокирован')
sys.addaudithook(ban)
def transfer(amount):
    sys.audit('bank.transfer', amount)
    return f'переведено {amount}'
print(transfer(500))  # → переведено 500
try:
    transfer(5000)
except RuntimeError as e:
    print(e)  # → перевод заблокирован

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности