首页 > 解决方案 > 如何将构造函数中的默认值设置为从超类继承的值?

问题描述

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

CardOnBattle用几个额外的参数初始化:power_after_modifiersdamage_after_modifiersattack_after_modifiers. 现在我要做的是分别设置参数power_after_modifiers和继承自的默认值。damage_after_modifierspowerdamageCard

我怎么做?

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

标签: pythoninheritanceinstance-variables

解决方案


推荐阅读