兔仙儿~ 2022-05-23 16:35 采纳率: 100%
浏览 30
已结题

python的这种super是什么意思呢?我没见过自己继承自己的啊

class SerialPort:
message = ' '
def _ init _(self,port,buand):
super(SerialPort,self). _ init _()
self. port = serial. Serial(port,buand)
self. port close()

  • 写回答

3条回答 默认 最新

  • Cleansely 2022-05-23 17:17
    关注

    super 有两个典型用例。 在具有单继承的类层级结构中,super 可用来引用父类而不必显式地指定它们的名称,从而令代码更易维护。 这种用法与其他编程语言中 super 的用法非常相似。
    第二个用例是在动态执行环境中支持协作多重继承。 此用例为 Python 所独有,在静态编译语言或仅支持单继承的语言中是不存在的。 这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方法。 好的设计强制要求这种方法在每个情况下具有相同的调用签名(因为调用顺序是在运行时确定的,也因为该顺序要适应类层级结构的更改,还因为该顺序可能包含在运行时之前未知的兄弟类)。

    我也没太理解,就当作查找父类,super(SerialPort,self). _init _()就是调用父类实例化的方法吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 修改了问题 5月23日
  • 修改了问题 5月23日
  • 展开全部