2015年12月13日星期日

Python atexit模块使用

atexit提供了一个程序退出时候的回调函数注册接口,比如你需要关掉文件,
保存当前数据等,当程序exit()时候自动调用回调函数,可以注册多个接口,
他们的调用顺序和注册顺序相反:

import atexit
import sys
import time

def goodbye(name, word):
  print 'Goodbye, %s, %s...' % (name, word)
  print 'pretend clean up resource...'


def first_register():
  print 'I am first register, but last called...'


atexit.register(first_register)
atexit.register(goodbye, 'python', 'see you again')


if __name__ == '__main__':
  time.sleep(3)
  if 1 == 1:
    exit(1)
  else:
    print 'exit(0)'
    exit(0)