python - 如何将构造函数中的默认值设置为从超类继承的值?
问题描述
我正在开发一个小游戏,我有一个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
解决方案
推荐阅读
- javascript - 我的 Promise.all() 实现有什么问题?
- javascript - 如何缩写 2 个看起来几乎相同的变量?
- javascript - 如何增加整个标签的字体大小
- java - 基于键盘使javafx选择框选择项目
- c++ - 在 OpenMP 中,我们如何并行运行多个代码块,其中每个代码块包含 omp single 和 omp for 循环?
- python - 如何在硒上循环执行脚本?
- php - 调用未定义的函数 get_translations_for_domain() Wordpress
- r - 如何用 R 处理 csv 行的中断?
- javascript - 如何根据列表中的复选框禁用 Vue 动态按钮
- c++ - 为什么 rand() % N 对于小型分布来说足够了?