Использование returns
и errors
в качестве переменных класса не кажется хорошей идеей. Существует только один экземпляр каждой из этих переменных, независимо от того, сколько экземпляров Nollty
вы создаете. Вместо этого сделайте это:
def __init__(self, filename, database):
self.returns = 0
self.errors = 0
# rest of __init__
Далее, использование returns
для указания возвращаемого значения также не является хорошей идеей. В Python обычно вызывается исключение , чтобы указать на проблему в конструкторе. Таким образом, вызывающая сторона не может просто проигнорировать проблему, забыв проверить returns
.
Аналогично, используйте исключение из select()
, чтобы указать на проблему с параметром. Я бы рекомендовал устранить и returns
и errors
.
Вы также вообще не возвращаете никакого значения из select
, поэтому query
в итоге становится None
(в Python None
- это специальное значение). Вы либо хотите вернуть что-то полезное из select()
, либо не присваиваете его результат чему-либо, если оно не возвращает полезного значения.