Я создаю программу на Python с графическим интерфейсом tkinter. Я читаю текст от пользователя и намерен использовать этот текст в качестве аргумента для дальнейших функций. Но эти функции требуют, чтобы текст был в «строковом» типе данных, а не в «методе класса», что происходит, если я использую функцию .get()
.
Я использовал команду виджета Entry для чтения и использовал StringVar()
в качестве переменной.
Я попытался str(content.get)
в функции parse1()
, но это не работает
def parse1():
string1=str(content.get)
try:
txt = TextBlob(string1) #TextBlob is a function used for string processing
for sentence in txt.sentences:
genQuestion(sentence)
except Exception as e:
raise e
Label(window, text="Text").grid(row=0)
content = StringVar()
e1 = Entry(window, textvariable=content)
e1.grid(row=0, column=1)
Button(window, text='Quit', command=window.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(window, text='ADD', command=parse1).grid(row=3, column=1, sticky=W, pady=4)
window.mainloop()
Я ожидаю, что content.get()
тип данных будет строковым с использованием str()
. Когда я пытаюсь string1=str(content.get)
ничего не происходит, и программа не прогрессирует дальше. Если я попробую print (string1), чтобы проверить, я получу:
<bound method StringVar.get of <tkinter.StringVar object at 0x000001D17418B710>>
вместо введенного текста, поэтому я думаю, что использование str()
не будет работать.
Я пробовал без str()
и получил:
Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\Tejas Jambhale\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args) File "C:/Users/Tejas Jambhale/Documents/genquest-master/quest.py", line 165, in parse1
raise e File "C:/Users/Tejas Jambhale/Documents/genquest-master/quest.py", line 159, in parse1
txt = TextBlob(string) File "C:\Users\Tejas Jambhale\Anaconda3\lib\site-packages\textblob\blob.py", line 370, in
__init__
'must be a string, not {0}'.format(type(text))) TypeError: The \`text\` argument passed to \`__init__(text)\` must be a string, not <class 'method'>
, что означает, что строковый тип данных необходим в качестве аргумента в TextBlob
. Есть ли способ для данных, считываемых пользователем, быть строковым типом данных?