python 의 atexit 모듈 을 깊이 이해 합 니 다.

2094 단어 pythonatexit 모듈
atexit 모듈 소개
python atexit 모듈 은 register 함 수 를 정의 합 니 다.python 해석 기 에 종료 함 수 를 등록 하 는 데 사 용 됩 니 다.이 함 수 는 해석 기 가 정상적으로 종 료 될 때 자동 으로 실 행 됩 니 다.일반적으로 자원 청 소 를 하 는 데 사 용 됩 니 다.atexit 는 등 록 된 반대 순서에 따라 이 함수 들 을 실행 합 니 다.예 를 들 어 A,B,C 를 등록 하고 해석 기 가 종 료 될 때 순서대로 C,B,A 가 실 행 됩 니 다.
Note:프로그램 이 비정 상 crash 이거 나os._exit()를 통 해 종료 되면 등 록 된 종료 함수 가 호출 되 지 않 습 니 다.
공식 문서:https://docs.python.org/3.5/library/atexit.html
등록 종료 함수

atexit.register(func, *args, **kargs)
func 를 종료 할 때 실행 할 함수 로 합 니 다.func 에 전달 할 선택 가능 한 매개 변 수 는 매개 변수 로 전달 해 야 합 니 다register().같은 함수 와 인 자 를 여러 번 등록 할 수 있 습 니 다.
프로그램 이 종료 되 었 을 때,먼저 나 온 순서대로 등 록 된 함 수 를 호출 합 니 다.종료 함수 가 실행 중 이상 을 던 지면 atexit 는 이상 한 정 보 를 인쇄 하고 다음 리 셋 을 계속 실행 합 니 다.모든 종료 함수 가 실 행 될 때 까지 마지막 으로 받 은 이상 을 다시 던 집 니 다.
예시
장식 기 를 통 해:

#!/usr/bin/env python
from atexit import register
def main():
 print('Do something.')
@register
def _atexit():
 print('Done.')
if __name__ == '__main__':
 main()
비 장식 기 방식:

#!/usr/bin/env python
from atexit import register
def main():
 #pass
 print('XX')
def goodbye(name, adjective):
 print('Goodbye, %s, it was %s to meet you.' % (name, adjective))
 
register(goodbye, 'Donny', 'nice')
# or:
# register(goodbye, adjective='nice', name='Donny')
if __name__ == '__main__':
 main()
종료 함수 삭제[일반 사용 불가]

> atexit.unregister(func)
>
해석 기 가 닫 혔 을 때 실행 되 는 함수 목록 에서 func 를 삭제 합 니 다.호출unregister()후 해석 기 가 꺼 졌 을 때 여러 번 등록 되 었 더 라 도 func 는 호출 되 지 않 습 니 다.func 가 등록 하지 않 았 다 면unregister()아무것도 하지 않 았 을 것 이다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기