我正在创建一个类似于记忆游戏的程序,我在其中加载文件并将其放在tkinter中的网格上。
我目前在使用这段代码时遇到了问题:
with open("Words.txt","r") as tenWordFile:
for count in range(10):
tenWordLine = tenWordFile.readline()
tenWordLine = tenWordLine.strip("\n")
Line = tenWordLine.split("\t")
Words.append(Line[0])
for r in range (3):
for c in range (3):
gridLabel = Label(app, text = Words (r,c),borderwidth = 1 ).grid(row=r,column=c)
app.mainloop()
当我运行程序时出现错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "E:\python\lib\tkinter\__init__.py", line 1487, in __call__
return self.func(*args)
File "E:\computer science\Controlled assessment 2\new cs.py", line 33, in tenWordGame
gridLabel = Label(app, text = Words (r,c),borderwidth = 1 ).grid(row=r,column=c)
TypeError: 'list' object is not callable
我正在寻找一个解决方案,用我的单词文件中的随机单词打印出3x3网格。
此外,我正在寻找一种更加pythonic的方式来代码。
最后,感谢阅读并试图帮助我。
答案 0 :(得分:1)
()
是一个列表。您无法使用[]
将其称为函数。如果是二维列表,则必须使用Words[some_index]
- Words[some_index][other_index]
或gridLabel = Label(...).grid(...)
。
-
BTW:None
会将gridLabel
分配给grid(...)
,因为None
始终会返回gridLabel
。
如果您在代码的其他部分不需要gridLabel =
,则可以跳过Label(...).grid(...)
gridLabel
如果您需要gridLabel = Label(...)
gridLabel.grid(...)
,请执行
WHERE employee.employee_ID = orderInfo.employee_ID and employee.employee_ID = @employee_ID