注册 登录
编程论坛 Python论坛

小白一新手低级问题

benzhj 发布于 2020-03-03 13:14, 1595 次点击
正在学习,按书敲了一段代码。
代码词句都初步搞明白了,但,运行时报错。
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,100)

      def draw(self):
            self.canvas.move(self.id,0,-1)

tk=Tk()
tk.title("game")                          
tk.resizable(0,0)                        
tk.wm_attributes("-topmost",1)            
canvas=Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)   
canvas.pack()                             
tk.update()                              

ball = Ball(canvas, 'red')
tk.update()

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



错在ball = Ball(canvas, 'red')  这行,ypeError: object() takes no parameters
能告我为什么错吗?



[此贴子已经被作者于2020-3-3 13:16编辑过]

1 回复
#2
时光流逝2020-03-11 11:59
你应该这样子定义你的类:
程序代码:
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,100)

      def draw(self):
            self.canvas.move(self.id,0,-1)

你类里的初始化函数_init_(self,canvas,color),"init"两边各少了一个下划线,导致报错
1