如何将构造函数中的默认值设置为从超类继承的值?

2024-10-02 22:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个小游戏,我有一个名为CardOnBattle的类,它继承了类CardOnHandCardOnHand有几个参数,我在这个问题中需要的参数是从一个名为Card的类继承的,它们是:powerdamage

CardOnBattle用几个额外的参数初始化:power_after_modifiersdamage_after_modifiersattack_after_modifiers。现在我要做的是将power_after_modifiersdamage_after_modifiers的默认值分别设置为从powerdamage继承的参数

我该怎么做

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

Tags: self参数ifiscardlevelelsepower