为了账号安全,请及时绑定邮箱和手机立即绑定

Square 子类的 __init()__ 函数中使用 super() 时,Square 对象具有

Square 子类的 __init()__ 函数中使用 super() 时,Square 对象具有

慕桂英546537 2024-01-04 09:50:23
请考虑以下代码:class Rectangle(object):    def __init__(self, height, length):        self.height = height        self.length = length        def area(self):        return self.height * self.length        def perimeter(self):        return 2 * (self.height + self.length)class Square(Rectangle):    def __init__(self, length):        super(Square, self).__init__(length, length)s = Square(5)s.area(), s.perimeter()对象包含哪些属性Square——它只是length属性还是两者height兼而有之length?__init__()如果我们看到类方法的参数Square,它必须只包含length属性。但super()方法正在初始化length和height属性。一个人应该如何想象一个Square物体?
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

print(s.__dict__)

给出{'height': 5, 'length': 5}


所以,它具有这两个属性。


附加信息:- 为了清楚起见,您还可以help在实例上使用。对于例如


print(help(s))  That will give:


Help on Square in module __main__ object:


    class Square(Rectangle)

     |  Square(length)

     |  

     |  Method resolution order:

     |      Square

     |      Rectangle

     |      builtins.object

     |  

     |  Methods defined here:

     |  

     |  __init__(self, length)

     |      Initialize self.  See help(type(self)) for accurate signature.

     |  

     |  ----------------------------------------------------------------------

     |  Methods inherited from Rectangle:

     |  

     |  area(self)

     |  

     |  perimeter(self)

     |  

     |  ----------------------------------------------------------------------

     |  Data descriptors inherited from Rectangle:

     |  

     |  __dict__

     |      dictionary for instance variables (if defined)

     |  

     |  __weakref__

     |      list of weak references to the object (if defined)


查看完整回答
反对 回复 2024-01-04
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

正方形物体将具有高度和长度。

Square 的构造函数仅接受长度,但这并不意味着 Square 可以拥有的唯一属性就是长度。当我们调用超类的构造函数时,它有两个高度和长度输入,两者仅传递长度。在父构造函数中,高度和长度设置为 length,这导致 Square 具有这两个属性。


查看完整回答
反对 回复 2024-01-04
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信