atexit._run_exitfuncs函数缺少位置参数

时间:2018-10-24 14:19:51

标签: python class atexit

当程序关闭时,我正在使用python的atexit库将类中的值保存到文本文件中。

在我的__init__类的AudioStream函数中,使用以下命令定义要用作退出函数的函数:

atexit.register(AudioStream.fileout)

应致电:

def fileout(self):
    self.outfile =  open(self.log_path, 'w+')
    self.outfile.write("%d \n" % self.zero_one)
    self.outfile.write("%d \n" % self.one_two)
    self.outfile.write("%d \n" % self.two_three)
    self.outfile.write("%d \n" % self.three_four)
    self.outfile.write("%d \n" % self.four_five)
    self.outfile.write("%d \n" % self.five_six)
    self.outfile.write("%d \n" % self.six_seven)
    self.outfile.write("%d \n" % self.seven_eight)
    self.outfile.write("%d \n" % self.eight_nine)
    self.outfile.write("%d \n" % self.nine_ten)
    self.outfile.write("%d \n" % self.ten_thirteen)
    self.outfile.write("%d \n" % self.greater_than_thirteen)

但是在退出时我收到错误消息:

Error in atexit._run_exitfuncs:
TypeError: fileout() missing 1 required positional argument: 'self'

关于相同错误消息的其他帖子建议将文件输出设置为变量并以这种方式调用它,但是由于库正在调用该函数,因此我看不出如何解决该问题。

0 个答案:

没有答案