我正在尝试更好地理解Python中的MRO,我遇到了这个例子:

  class A:
    def process(self):
        print('A process()')


class B(A):
    pass


class C(A):
    def process(self):
        print('C process()')


class D(B,C):
    pass


obj = D()
obj.process()

它输出"C process()“。我理解为什么,因为顺序是D>B>C>A的。但是,当类C没有继承A时,"A process()“被打印出来&顺序转移到D>B>A>C。是什么导致了顺序在这里转移?为什么现在没有在A类之前到达C超类?

转载请注明出处:http://www.zhongtian365.com/article/20230519/2154729.html

随机推荐

  1. 为什么当将参数从一个组件传递到另一个组件时,它到达时是未定义的,然后带着数据再次到达?

    如下图所示,将属性从父组件传递给子组件时,我的代码在属性到达之前首先执行,当尝试对数组执行.map时,它返回错误Cannot read properties of undefined (reading map)“。这一切为什么要发生???如...

  2. 为什么当一个表是一个类的属性时,改变它的变量名不起作用?

    在过去,我一直在广泛地使用Matlab的table类。这段非常简单的代码,在脚本中或在提示符下,都能按预期工作:varNames = {Date_time, Concentration_1, Concentration_2}; testTa...

  3. 为什么当我添加了一个requirejs填充程序时,仍然收到来自three.js的“未捕获的ReferenceError:三个未定义的”错误

    运行代码时,我收到以下错误:未捕获ReferenceError: THREE is not definedmodule game { export class Add3DScene extends dragonwings.Comma...

  4. 为什么当我生成一个签名的APK时,它会生成一个JKS文件?

    我正在使用最新版本的Android Studio,我正在考虑在Play商店上发布一个应用程序。不幸的是,当我生成一个签名的APK时,它只允许我生成一个JKS文件。我看到的所有教程看起来就像你放了一个APK,这就是你会得到的结果,但这些都是使...

  5. 为什么当我在一个程序中插入像;‘或’这样的东西时,我会得到一个错误?

    为什么我在回文程序中插入像;‘或’这样的东西时会出现错误?我想创建一个自动排除特殊符号的回文程序。例如:疯狂!我-回文是正确的。但它不起作用。它只在我放入madam时有效,但当我放入mad!am时,它会给出一个错误。#include std...

  6. 为什么当一个实例不匹配时,我会得到‘重叠实例’错误?

    我正在尝试允许在我的Free monad中嵌入一个状态monad;这是我的简单尝试:{-# language FlexibleInstances, MultiParamTypeClasses #-} module Main where i...

  7. Dart,为什么当我实现一个没有覆盖每个字段的类,而是从Mockito扩展Mock时,我的类没有错误?

    我在Dart。当我实现一个没有覆盖每个字段的类,而是从Mockito扩展Mock时,为什么我的类没有错误?例如,class Base { void a() {} void b() {} } // NO ERROR class Co...

  8. 为什么当我在一个函数中返回一个变量并在另一个函数中打印它时,它不能打印

    我正在编写一个不一致的机器人,当我编写?start时,它会不断检查文本文件是否发生变化,如果发生变化,它会获取文本文件的最后一行,并将其保存到变量avatarid中。当我在函数look中打印avatarid时,如果我写了print(avat...

  9. 为什么当用鼠标旋转一个物体时,它会旋转到相反的方向?

    public class Rotate : MonoBehaviour { public float speed = 1.0f; private void Update() { transform...

  10. 为什么当我更改一个菜单的值时,我的所有tkinter选项菜单都在更新?

    当我更改1个选项菜单的值时,我的所有选项菜单小工具都会一起更新。这是我用来制作所有菜单的(self.var被初始化为self.var = StringVar(master)):def makeMenu(self, name, items, ...