【问题标题】:forward expects 1 arguments (0 given)forward 需要 1 个参数(给定 0 个)
【发布时间】:2016-07-28 03:45:44
【问题描述】:
from turtle import *
from Tkinter import *

class TurtleApp:
    def left(self):
            self.turtle.right(90)
    def forward(self):
            self.turtle.forward(self.step)
    def right(self):
            self.turtle.right(90)
    def backward(self):
            self.turtle.backward(self.step)


    def __init__(self):
            self.main = Tk()
            self.main.title('TurtleApp')
            self.step = 10
            self.turtle = Turtle()
            self.window = Screen()
            self.window.setup(500,500)
            self.turtle.speed(self.step)
            topFrame = Frame(self.main)
            topFrame.pack(side='top')
            topLabel = Label(topFrame, text='Turtle Controls')
            topLabel.pack()
            self.createDirectionPad()
            self.createStepEntry()

    def createDirectionPad(self):
            leftFrame = Frame(self.main)
            leftFrame.pack(side='left')
            leftButton = Button(leftFrame, text='Left',command=left)
            forwardButton = Button(leftFrame, text='Forward',command=forward)
            rightButton = Button(leftFrame, text='Right',command=right)
            backwardButton = Button(leftFrame, text='Backward',command=backward)
            leftButton.grid(row=1,column=0)
            forwardButton.grid(row=0,column=1)
            rightButton.grid(row=1,column=2)
            backwardButton.grid(row=2,column=1)

    def createStepEntry(self):
            rightFrame = Frame(self.main)
            rightFrame.pack(side='right')
            stepLabel = Label(rightFrame,text='Enter step size')
            stepLabel.pack(side='top')
            stepEntry = Entry(rightFrame)
            stepEntry.pack()
            stepButton = Button(rightFrame,text='Change step size')
            stepButton.pack(side='bottom')


root = TurtleApp()

root.main.mainloop()

当我运行它然后单击“转发”按钮时,我收到一个类型错误,指出给出了 0 个参数。除了 self (已经给出?)我不知道要传递给它什么。我在这里遗漏了什么,还是计划太差以至于无法移动乌龟?

【问题讨论】:

  • 能否请您也包括 Turtle 类?
  • 在哪里包含 Turtle 类?
  • 应该是self.backwardself.forward

标签: python tkinter typeerror turtle-graphics


【解决方案1】:

您需要引用TurtleApp 类中定义的forward() 方法,而不是turtle 模块中定义的turtle.forward() 函数。调用后者是因为from turtle import *forward() 放入全局范围,因此调用了错误的forward()

createDirectionPad() 中的代码更改为在引用您的类的方法时使用self

    leftButton = Button(leftFrame, text='Left',command=self.left)
    forwardButton = Button(leftFrame, text='Forward',command=self.forward)
    rightButton = Button(leftFrame, text='Right',command=self.right)
    backwardButton = Button(leftFrame, text='Backward',command=self.backward)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-24
    • 2016-08-17
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多