所以,我对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()命令没有任何参数。有人知道我做错了吗?
答案 0 :(得分:1)
将turtle.Turtle
都更改为turtle.Turtle()
。如果没有()
,则是将类本身分配给变量。这意味着当您尝试在其上调用方法时,第一个参数(该类的实例)不会隐式传递给该方法。这意味着您要么必须显式传递实例(turtle.Turtle.penup(aTurtleInstanceThatYouDefinedElsewhere)
),否则方法调用将被视为静态方法,如果未将其定义为静态方法,则将引发该错误。方法。使用()
,您将创建类的实例并将其分配给变量。这意味着当您在其上调用方法时,您将隐式地将实例本身作为第一个参数传递给函数。
这是turto1.penup()
正在寻找的一个论点。被调用的实例。