atexit.register()
: 프로그램이 정상적으로 종료될 때
특정 함수를 실행하도록 예약
하는 데 사용
- 이는 스크립트가 종료될 때 수행되어야 하는 정리 작업이나 마무리 작업을 등록하는 데 유용
- 프로그램이 비정상적으로 종료될 경우:
(예: 강제 종료나 시스템 충돌)
1. 사용 목적
- 정리 작업 수행:
- 파일을 닫거나, 네트워크 연결을 해제하거나, 임시 파일을 삭제하는 등의 작업을 스크립트가 종료될 때 자동으로 수행하도록 할 수 있습니다.
- 데이터 저장:
- 프로그램이 종료되기 전에 데이터를 저장하거나 로그를 기록하는 등의 작업을 보장할 수 있습니다.
- 자원 해제:
- 메모리, 파일 핸들, 소켓 등 다양한 자원을 해제하여 메모리 누수나 다른 자원 관련 문제를 방지할 수 있습니다.
3. 사용법 상세
- 함수 등록:
atexit.register()
는 인수로 전달된 함수를 프로그램 종료 시 호출하도록 등록합니다.
- 인수 전달: 종료 시 호출할 함수가 인수를 필요로 하는 경우,
atexit.register()
에 함수와 인수를 함께 전달할 수 있습니다.
import atexit
def cleanup(name):
print(f"Cleaning up resources for {name}...")
atexit.register(cleanup, "ExampleUser")
print("Program is running...")
- 여러 함수 등록: 여러 개의 함수를 등록할 수 있으며, 등록된 순서대로 호출됩니다.
import atexit
def cleanup_first():
print("First cleanup task")
def cleanup_second():
print("Second cleanup task")
atexit.register(cleanup_first)
atexit.register(cleanup_second)
print("Program is running...")