Тема: Допоможіть виправити помилку _tkinter.TclError: wrong # args
Я початківець в об*єктно-орієнтовному програмуванні (і в программуванні загалом) і ось уже трохи розібрався в Ткінтері написав кілька простих програм а зараз хотів написати простого чат-бота. Програма складається з покищо дуже простого модуля "штучного інтелекту" який підключається до самої програми в якій створюється вікно простого чату. Ось сам код:
Модуль бота
from random import *
class AI():
def __init__(self):
self.grats = open('grats.txt').read().split(',') #'Hello' and so on...
def __str__(msg):
return 'something went wrong!'
def analyse(self,request):
if request in self.grats:
answer = self.grats[randrange(0,len(self.grats) + 1)]
return answer
Чат
#AI chat-bot
from tkinter import *
from ai import *
class A1(AI):
def __init__(self):
super().__init__()
self.ai_answer = None
self.inputted = None
self.F1 = Frame(win,width = 700, height = 700)
self.F1.grid()
self.massage_area = Text(self.F1, wrap = WORD)
self.massage_area.grid(column = 0, row = 1, padx = 6, pady = 6, columnspan = 3)
self.input_area = Text(self.F1, wrap = WORD, height = 3, width = 60)
self.input_area.grid(column = 0, row = 2, columnspan = 2, padx = 6, pady = 6, sticky = N)
self.input_but = Button(text = 'INPUT',width = 10, height = 4, command = self.send_massage)
self.input_but.grid(column = 3, row = 2, padx = 6, pady = 6, sticky = N)
def send_massage(self):
self.inputted = self.input_area.get(0.0, END)
if self.inputted != '':
self.massage_area.insert(INSERT, self.inputted)
self.massage_area.insert(INSERT, self.analyse(self.inputted))
self.input_area.delete(0.0, END)
win = Tk()
app = A1()
win.mainloop()
Файл grats.txt - це просто список привітань. Так ось, я не можу скористатись методом analyse об*єкту AI коли хочу йому передати йому ввід користувача. Ось код помилки -
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
File "C:\Users\User\Desktop\Programming\Python\BOT\bot.py", line 30, in send_massage
self.massage_area.insert(INSERT, self.analyse(self.inputted))
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\tkinter\__init__.py", line 3118, in insert
self.tk.call((self._w, 'insert', index, chars) + args)
_tkinter.TclError: wrong # args: should be ".510592618792.510592618960 insert index chars ?tagList chars tagList ...?"