微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:turn_left() 缺少 1 个必需的位置参数:'self'

如何解决类型错误:turn_left() 缺少 1 个必需的位置参数:'self'

我无法克服这个错误

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Usuario\AppData\Local\Programs\Python\python39\lib\tkinter\__init__.py",line 1884,in __call__
    return self.func(*args)
  File "C:\Users\Usuario\AppData\Local\Programs\Python\python39\lib\turtle.py",line 687,in eventfun
    fun()
TypeError: turn_left() missing 1 required positional argument: 'self'

我不知道我做错了什么。

我正在使用 Turtle。

class Player(Sprite):
    def __init__(self,spriteshape,color,startx,starty):
        Sprite.__init__(self,starty)
        self.speed = 4
        self.lives = 3

    def turn_left(self):
        self.lt(45)

    def turn_right(self):
        self.rt(45)

    def accelarate(self):
        self.speed += 1

    def decelarate(self):
        self.speed -= 1

turtle.onkey(Player.turn_right,"Right")
turtle.onkey(Player.turn_left,"Left")
turtle.onkey(Player.accelarate,"Up")
turtle.onkey(Player.decelarate,"Down")
turtle.listen()

解决方法

self 对象在创建类的实例时启动,您没有这样做,因此它找不到必需的 参数 self。>

试试这个:

P = Player(spriteshape='your-shape',color='your-color',startx='start-x-value',starty='start-y-value)

turtle.onkey(P.turn_right,"Right")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。