为什么当我运行代码时,它会说“AttributeError:敌军实例没有‘敌军’属性”?

2024-04-20 12:56:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码可以在这里找到并运行:https://repl.it/Bda9/10

现在我主要关注“探索”然后“攻击”的路径,但是由于某些原因,这段代码不会运行一次攻击。我至少要在今晚之前把它修好。我们刚开始OOP。。。好。。。这让我很沮丧。你知道吗

是什么导致了这个错误? 为什么代码不能识别敌人(我想这就是错误的意思)?你知道吗


Tags: 代码https路径错误原因itreploop
1条回答
网友
1楼 · 发布于 2024-04-20 12:56:53

首先,您应该尝试pare down your code到一个最小的例子,这样回答者就不必做定位bug的工作。您还应该发布堆栈跟踪(复制提供它),这样我们就可以检查我们得到的错误是你做的一样。你知道吗

Enemy.enemy_attacks方法中出现错误。在这个方法中,self引用Enemy对象,而不再像调用它的方法那样引用Player对象。敌人的属性,例如attack,是self的属性,而不是self.enemyEnemy对象没有enemy属性,因此当你试图访问它时会出错。你知道吗

还要注意的是,在这个方法中,玩家是p(作为参数传递),而不是self.p(第66行;让玩家成为敌人的属性是有意义的,但你没有这样做)或player(第69行,可能只是一个输入错误)。你知道吗

你的困难似乎在于self的意思。如果这个答案不足以解决你的问题,试着编辑这个问题来增加你对self的理解。你知道吗

相关问题 更多 >