В функции atexit._run_exitfuncs отсутствует позиционный аргумент - PullRequest
0 голосов
/ 24 октября 2018

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

...