在python中将祖父母添加到MRO中有什么不同吗?

在python中将祖父母添加到MRO中有什么不同吗?,python,python-mro,Python,Python Mro,将祖父母加入MRO是否有副作用?目的是我想通过使用祖父母来获取孙子类。\uu子类\uuuu() A类(对象): def工作(自我): 打印“A” B(A)类: def工作(自我): 打印“B” 超级(B,self)。工作() 丙(乙)类: def工作(自我): 打印“C” 超级(C,self).work() D类(B、A): def工作(自我): 打印 超级(D,self).work() >>>工作 C B A. >>>工作 D B A. >>>A.uuu子类uuu() [, ] 我们提出了一个

将祖父母加入MRO是否有副作用?目的是我想通过使用
祖父母来获取孙子类。\uu子类\uuuu()

A类(对象):
def工作(自我):
打印“A”
B(A)类:
def工作(自我):
打印“B”
超级(B,self)。工作()
丙(乙)类:
def工作(自我):
打印“C”
超级(C,self).work()
D类(B、A):
def工作(自我):
打印
超级(D,self).work()
>>>工作
C
B
A.
>>>工作
D
B
A.
>>>A.uuu子类uuu()
[, ]

我们提出了一个递归函数来计算子类

def get_all_subclasses(cls):
    all_subclasses = []

    for subclass in cls.__subclasses__():
        all_subclasses.append(subclass)
        all_subclasses.extend(get_all_subclasses(subclass))

    return all_subclasses

我们提出了一个递归函数来计算子类

def get_all_subclasses(cls):
    all_subclasses = []

    for subclass in cls.__subclasses__():
        all_subclasses.append(subclass)
        all_subclasses.extend(get_all_subclasses(subclass))

    return all_subclasses

副作用是什么意思?您可以通过检查
A中每个条目的MRO来确定孙辈。如果您不知道
C
存在,您如何检查每个孙辈
A.\uu子类\uuu()
仅返回直接子类。广度优先搜索。在子类上不断调用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu子类
,直到你触底。副作用是什么意思?您可以通过检查
A中每个条目的MRO来确定孙辈。如果您不知道
C
存在,您如何检查每个孙辈
A.\uu子类\uuu()
仅返回直接子类。广度优先搜索。在子类上不断调用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu子类
,直到你触底。副作用是什么意思?您可以通过检查
A中每个条目的MRO来确定孙辈。如果您不知道
C
存在,您如何检查每个孙辈
A.\uu子类\uuu()
仅返回直接子类。广度优先搜索。继续对子类调用
\uuuuuuuuuuuuuuuuuuuuuu子类
,直到到达底部。