前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python面向对象编程-三大特性-继承-super() 函数

Python面向对象编程-三大特性-继承-super() 函数

原创
作者头像
玖叁叁
发布2023-04-19 07:29:08
2090
发布2023-04-19 07:29:08
举报
文章被收录于专栏:玖叁叁

super() 函数

在 Python 中,如果一个子类要覆盖父类的方法,但又想保留父类方法的原有功能,可以使用 super() 函数。super() 函数返回一个代理对象,可以用来调用父类的方法。下面是一个例子,演示了如何使用 super() 函数:

代码语言:javascript
复制
class Shape:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def area(self):
        pass

class Circle(Shape):
    def __init__(self, x, y, r):
        super().__init__(x, y)
        self.r = r

    def area(self):
        return 3.14 * self.r ** 2

class Square(Shape):
    def __init__(self, x, y, l):
        super().__init__(x, y)
        self.l = l

    def area(self):
        return self.l ** 2

class Rectangle(Shape):
    def __init__(self, x, y, w, h):
        super().__init__(x, y)
        self.w = w
        self.h = h

    def area(self):
        return self.w * self.h

# 创建一个 Circle 对象
c = Circle(0, 0, 2)

# 创建一个 Square 对象
s = Square(0, 0, 2)

# 创建一个 Rectangle 对象
r = Rectangle(0, 0, 2, 3)

# 调用各个对象的 area() 方法
print(c.area())
print(s.area())
print(r.area())

在上面的代码中,我们定义了一个 Shape 类和三个子类 CircleSquareRectangle,分别表示圆形、正方形和矩形。在每个子类的构造函数中,我们使用 super() 函数调用了父类的构造函数,以便正确地初始化父类的属性。在每个子类中,我们重写了父类的 area() 方法,并实现了各自特有的计算面积的逻辑。在创建 CircleSquareRectangle 对象后,我们分别调用它们的 area() 方法,看看输出结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • super() 函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档