我在使用 python 乌龟时遇到了一些问题
I'm having some trouble with python turtle
所以,我对 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() 命令没有任何参数。有谁知道我做错了什么?
将 turtle.Turtle
都更改为 turtle.Turtle()
。如果没有 ()
,您会将 class 本身分配给变量。这意味着当您尝试对其调用方法时,第一个参数(class 的实例)不会隐式传递给该方法。这意味着您要么必须显式传入实例 (turtle.Turtle.penup(aTurtleInstanceThatYouDefinedElsewhere)
),要么方法调用将被视为静态方法,如果未定义为静态方法,将导致抛出错误方法。使用 ()
您正在创建 class 的实例并将其分配给变量。这意味着当您在其上调用方法时,您将隐式地将实例本身作为第一个参数传递给函数。
这就是 turto1.penup()
正在寻找的一个参数。被调用的实例。
所以,我对 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() 命令没有任何参数。有谁知道我做错了什么?
将 turtle.Turtle
都更改为 turtle.Turtle()
。如果没有 ()
,您会将 class 本身分配给变量。这意味着当您尝试对其调用方法时,第一个参数(class 的实例)不会隐式传递给该方法。这意味着您要么必须显式传入实例 (turtle.Turtle.penup(aTurtleInstanceThatYouDefinedElsewhere)
),要么方法调用将被视为静态方法,如果未定义为静态方法,将导致抛出错误方法。使用 ()
您正在创建 class 的实例并将其分配给变量。这意味着当您在其上调用方法时,您将隐式地将实例本身作为第一个参数传递给函数。
这就是 turto1.penup()
正在寻找的一个参数。被调用的实例。