Open In App

Python Exit handlers (atexit)

Improve
Improve
Like Article
Like
Save
Share
Report

atexit is a module in python which contains two functions register() and unregister(). The main role of this module is to perform clean up upon interpreter termination. Functions that are registered are automatically executed upon interpreter termination. Whenever a program is killed by a signal not handled by Python, when os.exit() is called, or Python fatal internal error is detected, the functions registered via this module are not executed.

  • register(): Register function takes a function as an argument that is to be executed at interpreter termination. If there are multiple functions passed as arguments e.g. (fun1(), fun2()..) then there execution will be in reverse order (…fun2(), fun1()). The execution occurs in last in first out (LIFO) concept.

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.

  • Note: This function can also be used as a decorator. 

# Example 1: 

Python3




# Python program to demonstrate
# atexit module
 
 
import atexit
 
names = ['Geeks', 'for', 'Geeks']
 
def hello(name):
    print (name)
 
for name in names:
 
    # Using register()
    atexit.register(hello, name)


Output :

Geeks
for
Geeks

# Example 2: Using register as a decorator 

Python3




# Python program to demonstrate
# atexit module
 
 
import atexit
 
# Using register() as a decorator
@atexit.register
def goodbye():
    print("GoodBye.")


Output :

GoodBye.
  • unregister(): The unregister() function removes the specified fun from the functions defined in the program. It provides a surety that the fun will not be called when the interpreter terminates.

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.

Example: 

Python3




# Python program to demonstrate
# atexit module
 
 
import atexit
 
names = ['Geeks', 'for', 'Geeks']
 
def hello(name):
    print (name)
 
for name in names:
 
    # Using unregister()
    atexit.unregister(hello)


Output :

No Output


Last Updated : 29 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads