【问题标题】:Default argument of parent class not changing in child class python父类的默认参数在子类python中没有改变
【发布时间】:2021-10-21 01:49:52
【问题描述】:

这里是示例代码

如果我创建父类 Shape 那么 self.height 的值为 29,但如果子类显示 0(这是父类的默认参数)。

为什么会这样?在这种情况下如何在子类中分配值?

【问题讨论】:

标签: python class object arguments default


【解决方案1】:

在 Triangle 类的定义中,在这种情况下,您使用一组全新的值调用 Shape 的初始化程序。一个有效的 Triangle 类定义可能看起来有点像这样:

class Triangle(Shape):
    def __init__(self, name='Default', height=0, base=0):
        Shape.__init__(self, name, height, base)
    #   Or
    #   super().__init__(name, height, base)

在三角定义的这种形式中,当我们调用 Shape 的 init 方法时,我没有将额外的值传递给 Shape 的初始化程序,因为它不需要。赋值已经在 Triangle 的 init 参数中完成,这些值只是传递给超类(Shape 的)初始化程序。

【讨论】:

  • 谢谢我明白了,一件事是我必须在Shape.__init__()中传递self参数
  • @Shourov 根据您的评论编辑了我的答案。谢谢指正!
猜你喜欢
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2011-10-29
  • 1970-01-01
  • 2015-11-07
  • 2011-06-05
相关资源
最近更新 更多