所以我在網上做了一些研究,似乎該__subclasses__方法回傳了一個python物件的所有繼承類(相關的堆疊溢位問題)
在 python3.8 上,我嘗試了以下操作:
class A:
a = 1
class B:
b = 2
class C(A, B):
c = 3
obj = C()
print('a: ', obj.a)
print('subclasses: ', C.__subclasses__())
我出去
a:1
個子類:[]
這表明類 C 成功地繼承了 A 和 B,但是它們沒有出現在 subclasses 方法中?那么我在該__subclasses__方法中是否缺少某些東西,或者該方法是否已針對 python 3.8 進行了更改?
uj5u.com熱心網友回復:
只是結合上面的答案:
my_class.__subclasses__將回傳類,它是 my_class 的子類C.__mro__在您的情況下顯示繼承層次結構: (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <type 'object'>)
object / \ A B \ / C
簡而言之,__subclasses__物件層次結構階梯向下,__mro__向上。祝你好運 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432508.html
