У меня есть герой класса
class Hero:
def __init__(self):
self.positive_effects = []
self.negative_effects = []
self.stats = {
"HP": 128,
"MP": 42,
"SP": 100,
"Strength": 15,
"Perception": 4,
"Endurance": 8,
"Charisma": 2,
"Intelligence": 3,
"Agility": 8,
"Luck": 1
}
def get_positive_effects(self):
return self.positive_effects.copy()
def get_negative_effects(self):
return self.negative_effects
def get_stats(self):
return self.stats.copy()
Мне нужно создать заклинание декоратора, например:
class AbstractEffect(Hero):
def __init__(self, base):
self.base = base
def get_stats(self):
self.base.get_stats()
def get_positive_effects(self):
self.base.get_positive_effects()
def get_negative_effects(self):
self.base.get_negative_effects()
class Berserk(AbstractEffect):
def __init__(self):
self.positive_effects.append('Berserk')
self.stats.HP += 50
self.stats.Strength += 7
self.stats.Endurance += 7
self.stats.Agility += 7
self.stats.Luck += 7
self.stats.Intelligence -= 3
self.stats.Perception -= 3
self.stats.Charisma -= 3
, но когда я его использую, я получаю ошибку
man = Hero()
man = Berserk(man)
TypeError Traceback (последний последний вызов) в () ----> 1 человек = Berserk (мужчина)
TypeError: __init__() takes exactly 1 argument (2 given)
Что не так?