Как установить значения по умолчанию в конструкторе, чтобы быть значениями, унаследованными от суперкласса? - PullRequest
0 голосов
/ 14 июня 2019

Я занимаюсь разработкой небольшой игры, и у меня есть класс с именем CardOnBattle, который наследует класс CardOnHand. CardOnHand имеет несколько параметров, те, которые мне нужны в этой задаче, унаследованы от класса с именем Card, и это: power и damage.

CardOnBattle инициализируется парой дополнительных параметров: power_after_modifiers, damage_after_modifiers и attack_after_modifiers. Теперь я хочу установить значения по умолчанию power_after_modifiers и damage_after_modifiers для параметров power и damage, унаследованных от Card соответственно.

Как мне это сделать?

class Card:
    def __init__(self, power, damage, stars, level, name, ability, 
                 clan):
        if is_valid_power(power):
            self.power = power
        else:
            self.power = 0
        if is_valid_damage(damage):
            self.damage = damage
        else:
            self.damage = 0
        if is_valid_stars(stars):
            self.stars = stars
        else:
            self.stars = 0
        if is_valid_level(level):
            self.level = level
        else:
            self.level = 0
        self.name = name
        self.ability = ability
        self.clan = clan


class CardOnHand(Card):
    def __init__(self, bonus=None, has_been_used=False):
        self.bonus=bonus
        self.has_been_used=has_been_used


class CardOnBattle(CardOnHand):
    def __init__(self, attack_after_modifiers, 
power_after_modifiers, damage_after_modifiers):
        self.power_after_modifiers = power_after_modifiers
        self.damage_after_modifiers = damage_after_modifiers
        self.attack_after_modifiers = attack_after_modifiers
...