我在使用python乌龟时遇到了麻烦

时间:2018-08-10 22:02:26

标签: python turtle-graphics

所以,我对turtle还是很陌生,我打算写一些文字,但是当我使用此功能时;

    turto1=turtle.Turtle
    turto2=turtle.Turtle
    def spuper():
        turto1.penup()
        turto2.penup()
        turto1.goto(-150,40)
        turto2.goto(-130,40)

我收到此错误:

    TypeError: penup() missing 1 required 
    positional argument: 'self'

我不确定为什么会这样,而且我很确定penup()命令没有任何参数。有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

turtle.Turtle都更改为turtle.Turtle()。如果没有(),则是将类本身分配给变量。这意味着当您尝试在其上调用方法时,第一个参数(该类的实例)不会隐式传递给该方法。这意味着您要么必须显式传递实例(turtle.Turtle.penup(aTurtleInstanceThatYouDefinedElsewhere)),否则方法调用将被视为静态方法,如果未将其定义为静态方法,则将引发该错误。方法。使用(),您将创建类的实例并将其分配给变量。这意味着当您在其上调用方法时,您将隐式地将实例本身作为第一个参数传递给函数。

这是turto1.penup()正在寻找的一个论点。被调用的实例。