Python 位置参数OSX

Python 位置参数OSX,python,arguments,Python,Arguments,mac终端说我正在将两个位置参数传递到take_damage方法中 from enemy import Enemy random_monster = Enemy("Basic enemy", 12, 1) print(random_monster) random_monster.take_damage(4) print(random_monster) 另一个文件在这里______________________ class Enemy: def __init__(self, name="

mac终端说我正在将两个位置参数传递到take_damage方法中

from enemy import Enemy

random_monster = Enemy("Basic enemy", 12, 1)
print(random_monster)

random_monster.take_damage(4)
print(random_monster)
另一个文件在这里______________________

class Enemy:

def __init__(self, name="Enemy", hit_points = 0, lives = 1):
    self.name = name
    self.hit_points = hit_points
    self.lives = lives

def take_damage(damage):
    remaining_points = self.hit_points - take_damage
    if remaining_points >= 0:
        self.hit_points = remaining_points
        print("i took {} damage and have {} left".format(damage, self.hit_points))
    else:
        self.lives -= 1

def __str__(self):
    return "Name: {0.name}, Lives: {0.lives}, Hitpoints: {0.hit_points}".format(self)

所有方法都需要采用
self
以及任何其他参数

def take_damage(self, damage):

啊,多亏了你才弄明白!我也试着减去take_伤害,而不是伤害。愚蠢的学习错误哈哈