它说在 python tkinter 中没有 canvas 这样的东西

It says no such thing as canvas in python tinkter

我做了一个脚本:

from tkinter import *
import random
import time

class Ball:
    def _init_(self,canvas,color):
        self.canvas = canvas
        self.id = canvas.create_oval(10,10,25,25,fill=color)
        self.canvas.move(self.id,245, 245, 100)

    def draw(self):
        pass
ball = Ball(canvas,"red")


while 1:
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)

它说没有 canvas 这样的东西,我真的很困惑。

canvas() 是函数,不是参数或变量。如果你想正确调用它,你必须添加()

self.canvas = canvas()

错误说的是实话:您没有在任何地方定义 canvas。您需要同时创建根 window 和 Canvas class.

的实例
root = Tk()
canvas = Canvas(root)
canvas.pack(foll="both", expand=True)
ball = Ball(canvas,"red")