python 의 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()
아무것도 하지 않 았 을 것 이다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.