首页 > 解决方案 > 在子类中使用 super() 而不是 self?

问题描述

super()在子类中使用和self定义方法有什么区别double_area?好像super().area()self.area做同样的事情?应该使用哪一个,为什么他们做同样的事情?

class Rectangle(object):
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def area(self):
        return self.length*self.width

    def perimeter(self):
        return 2*self.length + 2*self.width


class Square(Rectangle):
    def __init__(self,length):
        super().__init__(length,length)

    def double_area(self):
        return 2*super().area()

标签: pythonpython-3.xclassinheritancemethods

解决方案


推荐阅读