我有这个简单的程序:
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().