В коде значительной длины (для меня) я забыл скобки после
класс при создании экземпляра класса, например
index = UnicodeIndex
это привело к странной ошибке вроде
TypeError: find_description() missing 1 required positional argument: 'query'
в таких строках
index.find_description (запрос)
Где find_description - это метод класса UnicodeIndex
Мне потребовались часы, чтобы найти причину проблемы (образец ниже
иллюстрирует это):
class Noinit:
def __init__(self, chars):
self.chars = chars
def find_chars(self, char):
return char in self.chars
>>> n=Noinit
>>> n.find_chars('c')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: find_chars() missing 1 required positional argument: 'char'
Пожалуйста, помогите мне понять связь между причиной (использование
класс, по ошибке вместо экземпляра класса) и следствие,
ошибка «отсутствует позиционный аргумент» при вызове метода.
У меня есть очень смутное представление о том, что, поскольку класс не был создан, он не должен быть сам, когда вызывается метод, а предоставленный аргумент используется как один, таким образом, съедая все позиционные аргументы