Куда мне всунуть аргумент self?
Вот ошибка если я НЕ вставляю в скобки аргумент self:
File "F:\Programming\Assistant\Yulia_0_1_5.py", line 192, in
button.config(command=lambda: main()) # Вызов кнопкой функции main()
TypeError: main() missing 1 required positional argument: 'self'
Вот ошибка если я ВСТАВЛЯЮ аргумент self в скобки:
File "F:\Programming\Assistant\Yulia_0_1_5.py", line 192, in
button.config(command=lambda: main(self)) # Вызов кнопкой функции main()
NameError: name 'self' is not defined
Вот место в коде:
button.config(command=lambda: main(self)) # Вызов кнопкой функции main(self)
Аргумент self находится в скобках названия функции, тобишь, выглядит так - def main(self). Этот аргумент нужен для работы базы данных.
Вопрос: куда мне нужно всунуть аргумент self? P.S. Что значит lambda: я не знаю.
Ответы (1 шт):
main это функция в каком-то классе, допустим так:
class SomeClass:
def main(self):
...
Чтоб вызвать метод main у этого класса вам нужен объект класса SomeClass и, если допустить, что у вас есть на объект ссылка в переменной some_class_obj, то вызов будет выглядеть так:
button.config(command=lambda: some_class_obj.main())
При вызове some_class_obj.main() внутри main ссылка на some_class_obj будет автоматически передана в первом аргументе, т.е. self.
Где в вашей ситуации взять объект, зависит от структуры программы.