Python 我给我的函数提供什么论据(当我似乎不…)
它给出了一个错误:Python 我给我的函数提供什么论据(当我似乎不…),python,python-3.x,Python,Python 3.x,它给出了一个错误: class User: def sign_in(): print('logged in') class Wizard(User): def __init__(self, name, power, damage): self.name = name self.power = power self.damage = damage def attack(): print(f'
class User:
def sign_in():
print('logged in')
class Wizard(User):
def __init__(self, name, power, damage):
self.name = name
self.power = power
self.damage = damage
def attack():
print(f'attacking with {self.power} inflicting {self.damage}')
class Archer(User):
def __init__(self, name, bow, damage, arrows_left):
self.name = name
self.bow = bow
self.damage = damage
self.arrows_left = arrows_left
def attack():
print(f'{self.name} attacking with {self.bow} inflicting {self.damage}, arrows left: {self.arrows_left}')
#self.arrows_left -= 1
#print (self.arrows_left)
archer1 = Archer('Robin', 'longbow', '50', 50)
archer1.attack()
我应该向这个函数传递什么参数
还有更多:我希望每次调用archer.attack()-怎么做?
self
不是一个关键字时都能更新archers arrows;它是实例方法所需的第一个参数的常规名称
TypeError: attack() takes 0 positional arguments but 1 was given
self
不是关键字;它是实例方法所需的第一个参数的常规名称
TypeError: attack() takes 0 positional arguments but 1 was given
我想您忘记了代码中的下划线。 但是你的代码现在显示的方式非常混乱
def attack(self):
print(f'{self.name} attacking with {self.bow} inflicting {self.damage}, arrows left: {self.arrows_left}')
我想您忘记了代码中的下划线。 但是你的代码现在显示的方式非常混乱
def attack(self):
print(f'{self.name} attacking with {self.bow} inflicting {self.damage}, arrows left: {self.arrows_left}')
请修复代码缩进-这在Python中至关重要。此外,类成员函数的第一个参数通常名为
self
,因此您可以访问它。@iBug更具体地说,名称并不重要,但需要定义一个参数。请修复代码缩进-这在Python中至关重要。此外,类成员函数的第一个参数通常名为self
,因此您可以访问它。@iBug更具体地说,名称无关紧要,但需要定义一个参数。