Hackerman1
@Hackerman1
17 лет, плохое зрение.

Куда всунуть аргумент 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 находится в скобках названия функции, тобишь, выглядит так - def main(self). Этот аргумент нужен для работы базы данных.
Вопрос: куда мне нужно всунуть аргумент self? P.S. Что значит lambda: я не знаю.
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Для начала, что такое main() - метод или свободная функция? Если метод, метод вызывается как self.main(). Это азы синтаксиса Питона, их нужно знать прежде чем бросаться воевать с Ткинтером.
Во-вторых, зачем лямбда? Если метод не требует параметров, то можно указать просто self.main без скобок. Лямбда нужна, если параметры, передаваемые кнопкой, не совпадают с параметрами, требуемыми методом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы