温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Super怎么访问超类属性

发布时间:2026-07-25 13:50:08 来源:亿速云 阅读:104 作者:小樊 栏目:编程语言

Python 里,super() 用来访问**父类(超类)**的方法或属性,常见用法和注意点如下。


一、最常见用法(访问超类方法)

class Parent:
    def hello(self):
        print("Hello from Parent")

class Child(Parent):
    def hello(self):
        super().hello()      # 调用父类的 hello
        print("Hello from Child")

c = Child()
c.hello()

输出:

Hello from Parent
Hello from Child

二、访问超类「属性」的两种方式

✅ 方式 1:通过 super() 访问实例属性

class Parent:
    def __init__(self):
        self.x = 10

class Child(Parent):
    def __init__(self):
        super().__init__()     # 先初始化父类
        print(self.x)          # 访问父类设置的属性
        self.x = 20

c = Child()
print(c.x)

✅ 说明:

  • super().__init__() 会把 self.x = 10 设置好
  • 之后 self.x 就是父类定义的属性

✅ 方式 2:直接通过 super() 访问父类方法中的属性

class Parent:
    def __init__(self):
        self.x = 10

    def get_x(self):
        return self.x

class Child(Parent):
    def show(self):
        value = super().get_x()   # 通过父类方法访问父类属性
        print(value)

c = Child()
c.show()

三、访问「类属性」

class Parent:
    x = 100

class Child(Parent):
    def show(self):
        print(super().x)   # ✅ 访问父类类属性

c = Child()
c.show()

四、带参数的 super()(旧式 / 多继承)

super(Child, self).method()

单继承 中通常不需要,但在 多继承 / 复杂 MRO 中更精确。


五、⚠️ 常见误区

❌ 不能直接 super().x 访问实例属性(除非是类属性)

class Parent:
    def __init__(self):
        self.x = 10

class Child(Parent):
    def show(self):
        print(super().x)   # ❌ 会报错

✅ 正确做法:

  • super().__init__()
  • 再用 self.x

六、总结口诀

super 用来找父类,方法属性都能用
实例属性先初始化,类属性直接 super 拿

如果你用的是 Java / JavaScript / Kotlin 或涉及 多继承 MRO,可以继续问,我可以针对具体语言讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI