Python 我在代码底部附近得到一个列表,上面写着ball.append,但我没有';我不知道如何修理它

Python 我在代码底部附近得到一个列表,上面写着ball.append,但我没有';我不知道如何修理它,python,tkinter,Python,Tkinter,我有一个程序,一个球在屏幕上弹来弹去。我使用类、列表和for循环来创建更多在屏幕上反弹的球。我收到一个错误,说列表不可调用 from tkinter import * from random import uniform, randrange import time #left,top,right,bottom tk = Tk() canvas = Canvas(tk,width=600,height=600) canvas.pack() class Ball:#ball character

我有一个程序,一个球在屏幕上弹来弹去。我使用类、列表和for循环来创建更多在屏幕上反弹的球。我收到一个错误,说
列表不可调用

from tkinter import *
from random import uniform, randrange
import time
#left,top,right,bottom

tk = Tk()
canvas = Canvas(tk,width=600,height=600)
canvas.pack()

class Ball:#ball characteristics
    def __init__(self,color,size):
        self.shape = canvas.create_oval(10,10,50,50,fill="blue")
        self.xspeed = randrange(1,6)
        self.yspeed = randrange(1,6) 
    def move(self):#ball animation
        canvas.move(self.shape,self.xspeed,self.yspeed)
        pos = canvas.coords(self.shape)
        if pos[0] <= 0 or pos[2] >= 600:#if ball hits the wall#
            self.xspeed = -self.xspeed
        if pos[1] <= 0 or pos[3] >= 600:
            self.yspeed = -self.yspeed
balls = []
for i in range(100):
    balls.append(Ball("red",50))

while True:
    for ball in balls():
        ball.move()
    tk.update()
    time.sleep(0.01)
从tkinter导入*
从随机导入统一,随机范围
导入时间
#左、上、右、下
tk=tk()
画布=画布(tk,宽度=600,高度=600)
canvas.pack()
类球:#球特性
定义初始值(自身、颜色、大小):
self.shape=canvas.create_oval(10,10,50,50,fill=“blue”)
self.xspeed=randrange(1,6)
self.yspeed=随机范围(1,6)
def移动(自身):#球动画
canvas.move(self.shape、self.xspeed、self.yspeed)
pos=画布坐标(自形)
如果位置[0]=600:#如果球撞到墙上#
self.xspeed=-self.xspeed
如果位置[1]=600:
self.yspeed=-self.yspeed
球=[]
对于范围(100)内的i:
球。附加(球(“红色”,50))
尽管如此:
对于球中的球():
球移动
tk.update()
睡眠时间(0.01)

您试图调用
balls
,但
balls
是一个列表,因此无法调用。拿出电话:

for ball in balls():
    ball.move()
应该是:

for ball in balls:
    ball.move()

换句话说,问题恰恰在于错误消息所说的内容,以及它所说的内容。

始终对完整的错误消息(回溯)提出疑问。还有其他有用的信息。