Я использую библиотеку 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'
В других сообщениях об этом же сообщении об ошибке предлагалось установить fileout для переменной и вызвать ее таким образом, однако, поскольку библиотека вызывает функцию, яне понимаю, как это решит проблему.