Рубрики

Обработчики выхода Python (atexit)

atextit — это модуль в python, который содержит две функции register() и unregister() . Основная роль этого модуля заключается в выполнении очистки после завершения работы интерпретатора. Зарегистрированные функции автоматически выполняются по завершении интерпретатора. Всякий раз, когда программа os.exit() сигналом, не обработанным Python, когда os.exit() или обнаруживается фатальная внутренняя ошибка Python, функции, зарегистрированные через этот модуль, не выполняются.

  • register (): функция Register принимает функцию в качестве аргумента, который должен выполняться при завершении интерпретатора. Если в качестве аргументов передано несколько функций, например (fun1 (), fun2 () ..), то выполнение будет в обратном порядке (… fun2 (), fun1 ()). Выполнение происходит по принципу «последний пришел — первым вышел» (LIFO).

    Syntax: atexit.register(fun, *args, **kwargs)

    Parameters: First the function name is mentioned and then any arguments for that function is passed. The parameters are separated using ‘, ‘.

    Return: This function returns the called fun and hence the calling can be traced.

    Примечание. Эту функцию также можно использовать в качестве декоратора.

    # Пример 1:

       
    # Программа Python для демонстрации
    # atexit module

      

      

    import atexit

      

    names = ['Geeks', 'for', 'Geeks']

      

    def hello(name):

        print (name)

      

    for name in names:

      

        # Использование register ()

        atexit.register(hello, name)

    Выход :

    Geeks
    for
    Geeks
    

    # Пример 2: Использование регистра в качестве декоратора

    # Программа Python для демонстрации
    # atexit module

      

      

    import atexit

      
    # Использование register () в качестве декоратора

    @atexit.register

    def goodbye():

        print("GoodBye.")

    Выход :

    GoodBye.
    
  • unregister (): функция unregister() удаляет указанное удовольствие от функций, определенных в программе. Это дает гарантию, что веселье не будет вызвано, когда переводчик завершит работу.

    Syntax: atexit.unregister(fun)

    Parameters: The function may or may not contain any parameter. If any present then the fun name is to be specified.

    Return: No return.

    Пример:

    # Программа Python для демонстрации
    # atexit module

      

      

    import atexit

      

    names = ['Geeks', 'for', 'Geeks']

      

    def hello(name):

        print (name)

      

    for name in names:

      

        # Использование unregister ()

        atexit.unregister(hello) 

    Выход :

    No Output
    

Рекомендуемые посты:

Обработчики выхода Python (atexit)

0.00 (0%) 0 votes