我正在尝试用Python制作一个游戏。这部分仅显示生命数。但我收到此错误“缺少 1 个必需的位置参数:self”

问题描述 投票:0回答:1

所以,我正在尝试使用turtle模块在python中制作一个太空战争游戏。我负责显示玩家的生命数。我只需要帮助来显示生命数量,但要使其真正发挥作用,我想我自己就可以做到。我创建了一个名为“game2”的类。我使用 def 赋予它一些属性并添加玩家生命。但是当我尝试某些操作时,我收到此错误: 回溯(最近一次调用最后一次): 文件“C:\Users\HUAWEI\OneDrive\Desktop\Space War est of space war.py”,第 225 行,位于 game2.show_lives() 类型错误:game2.show_lives() 缺少 1 个必需的位置参数:'self'

有关更多详细信息,我使用 IDLE Python 3.11.5 64 位,如果这有帮助的话。

这是我尝试过的。 类游戏2(): def init(自身): 自己的生命= 3

def show_lives(self):
    self.pen.undo()
    msg2 = "Lives: %l" % (self.lives)
    self.pen.penup()
    self.pen.goto(-200, 310)
    self.pen.write(msg2, font=("Arial", 16, "normal"))

game2.show_lives()

我本来希望它显示“Lives:”,但它没有。相反,我遇到了这个错误:

回溯(最近一次调用最后一次): 文件“C:\Users\HUAWEI\OneDrive\Desktop\Space War est of space war.py”,第 225 行,位于 game2.show_lives() 类型错误:game2.show_lives() 缺少 1 个必需的位置参数:'self'

arguments
1个回答
0
投票

问题是你没有初始化

game2
类。

首先,

game2
类应该有相应的
__init__(self)
函数。这是一个问题,因为类
__init__(self)
中没有
game2
函数。相反,只有一个
init(self)
函数。

如果您希望

init(self)
函数为
__init__(self)
,那么您应该将该函数的名称更改为
__init__(self)
__init__
是初始化类的函数的名称。

其次,通过调用

game2.show_lives()
,您实际上是在调用所谓的“静态方法”。这是因为
game2
不是类的实例,而是类本身。您应该首先通过“像函数一样调用类”来初始化类。

例如,您可以这样做:

running_game2 = game2()
running_game2.show_lives()

现在

running_game2
是一个实例,而不是一个类。所以你可以调用 类函数
show_lives()
而不发送实例作为
self

© www.soinside.com 2019 - 2024. All rights reserved.