猿问

is not defined怎么解决

import random

class Creature():
    def __init__(self,hp,name):
        self.hp = hp
        self.name = name
        
    def attack(self):
        attack_value = random.randint(0,50)
        return attack_value
        
    def being_attack(self,attack_value):
        self.hp = hp - attack_value
        
    def not_dead(self):
        if self.hp <= 0:
            return False
        else:
            return True
            
    def show_status(self):
        print("{}'s hp is {}.".format(self.name,self.hp))
        
player = Creature(100,"Bi")
enemy = Creature(80,"enemy")

while player.not_dead() and enemy.not_dead():
    player.show_status()
    enemy.show_status()
    
    user_input = input("Attack or Defence(A/D)")
    
    if user_input == 'A':
        player_attack_value = player.attack()
        enemy_attack_value = enemy.attack()
        enemy.being_attack(player_attack_value)
        player.being_attack(enemy_attack_value)
    elif user_input == "D":
        enemy_attack_value = enemy.attack()*0.1
        player.being_attack(enemy_attack_value)
if player.not_dead():
    print("You Win!")
else:
    print("You Lose!")

报错

Traceback (most recent call last):

  File "C:\Users\Administrator\Desktop\pl.py", line 45, in <module>

    player.being_attack(enemy_attack_value)

  File "C:\Users\Administrator\Desktop\pl.py", line 18, in being_attack

    self.hp = hp - attack_value

NameError: name 'hp' is not defined

怎么解决

qq_匿名_8
浏览 4447回答 2
2回答

产品经理不是经理

   def being_attack(self,attack_value):                self.hp = self.hp - attack_value

张婧仪

def being_attack(self,attack_value):               self.hp = self.hp - attack_value
随时随地看视频慕课网APP

相关分类

Python
我要回答