python裏 super類的工做原理

super 的工做原理以下:code

def super(cls, inst):
    mro = inst.__class__.mro()
    return mro[mro.index(cls) + 1]

其中,cls 表明類,inst 表明實例,上面的代碼作了兩件事:class

  1. 獲取 inst 的 MRO 列表
  2. 查找 cls 在當前 MRO 列表中的 index, 並返回它的下一個類,即 mro[index + 1]

當你使用 super(cls, inst) 時,Python 會在 inst 的 MRO 列表上搜索 cls 的下一個類。原理

相關文章
相關標籤/搜索