python – 在程序启动时执行的Atexit函数

我有这个简单的程序:

def save_f():
    global register
    register = register_registerer()
    outFile = open('FobbySave.txt', 'wb')
    pickle.dump(register, outFile)
    outFile.close()
    print register

atexit.register(save_f())

问题是我运行程序后会立即调用save_f.这不是我的所有代码,只是重要部分.如果这里没有错,请告诉我,以便我知道该怎么做.

解决方法:

更改

atexit.register(save_f())

atexit.register(save_f)

在原始代码中,save_f()调用该函数.然后将函数的返回值(即None)传递给atexit.register().

正确的版本将函数对象本身传递给atexit.register().

上一篇:exit()函数和atexit()函数 复习


下一篇:python:闭包和类