第92行错误在哪里?

ile "G:\hjt project\xkl\xkl.py", line 92, in mainGame
    dinosaur.yd()
TypeError: kl.yd() missing 1 required positional argument: 'self'(显示错误)
dinosaur.yd()   92行
    def yd(self):
        if self.ty:
            if self.rect.y>=self.lowest_y:
                self.height=-5
            if self.rect.y<=self.lowest_y-self.height:
                self.height=5
            self.rect.y+=self.height
            if self.rect.y>=self.lowest_y:
                    self.ty=False

1.jpg2.jpg3.jpg4.jpg

找到问题所在,并提供解决方法

阅读 1.1k
avatarAI BotBETA
### 错误分析
第92行的错误在于使用了错误的变量名 `arr` 来访问数组。根据代码截图,正确的变量名应该是 `array`。

### 解决方法
将第92行的 `arr` 改为 `array`。修改后的代码行应该如下所示:

for (int i = 0; i < array.size(); i++) {

// 其余代码保持不变

}


确保整个代码中一致使用正确的变量名 `array` 来引用该数组。
2 个回答

image.png

你这里的 dinosaur = kl 应该改为 dinosaur = kl(),按照你的原有写法,在下面代码用到 dinosaur.yd(),实际上是在直接用调用类的方法,而不是这个类实例的方法。

比如,你的写法类似于:

class A(object):
    def test(self):
        pass

A.test()

这样会报错,正确的用法应该是:

class A(object):
    def test(self):
        pass

a = A()
a.test()

出现这类问题一个是你编码基础不足,还有就是代码的写法不规范导致。

遇到问题,先看错误:missing 1 required positional argument: 'self',翻译一下 缺少 1 个必需的位置参数:“self”

这种一般是没有初始化类,直接通过类来调用实例方法时,抛出的异常。


建议再学习一下Python基础。推荐教程: https://liaoxuefeng.com/books/python/oop/index.html


另外,既然使用了IDE,就要观察一下 为什么会有很多波浪线?以及各种提示?
image.png
可以将鼠标移动到该位置,看下有何提示?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏