【问题标题】:Object has parameters, but says it doesn't [closed]对象有参数,但说它没有[关闭]
【发布时间】:2017-03-26 09:04:11
【问题描述】:
from tkinter import *
import random
import time
tk = Tk()
tk.title("Pong")
tk.resizable(0,0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()
class Ball:
    def _init_(self, canvas, color):
        self.canvas = canvas
        self.id = canvas.create_oval()
        self.canvas.move(self.id, 245, 100)

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

当我运行代码时,它返回错误:

TypeError: object() takes no parameters

即使对象的参数已定义。

【问题讨论】:

  • _init_ 在 python 中没有什么特别之处。每边需要两个下划线
  • 每边需要两个下划线__init__
  • @cricket_007 只会带来更多错误
  • 总是显示完整的错误信息(Traceback)。哪条线有问题?
  • 嗯,这解决了提到的错误,这是一个错字,因此使这篇文章偏离主题。不过你还有时间edit

标签: python python-3.x tkinter python-3.5


【解决方案1】:

正如其他人指出的,您需要在__init__ 中使用双下划线, 你错过了create_oval电话的参数:

def __init__(self, canvas, color):  # <--- double underscores
    self.canvas = canvas
    self.id = canvas.create_oval(0, 0, 100, 100)  # <--- missing arguments
    self.canvas.move(self.id, 245, 100)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2022-10-17
    • 1970-01-01
    • 2018-06-06
    • 2018-10-03
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多