如何獲得Python類的父類?獲取班級家長?
獲取班級家長?
回答
使用以下屬性:
cls.__bases__
從docs:
類 對象的基類的元組。
例子:
>>> str.__bases__
(<type 'basestring'>,)
又如:
>>> class A(object):
... pass
...
>>> class B(object):
... pass
...
>>> class C(A, B):
... pass
...
>>> C.__bases__
(<class '__main__.A'>, <class '__main__.B'>)
如果你想把所有的祖先而不僅僅是眼前的,使用inspect.getmro:
import inspect
print inspect.getmro(cls)
有用地,這給你所有的祖先類在「方法解析順序」 - 即祖先在解析方法時將被檢查的順序(或者實際上,任何其他屬性 - 方法和其他屬性居於相同的畢竟,Python中的命名空間;-)。
你也可以直接使用'cls .__ mro__'(至少在Python 3.5中) – naught101 2017-01-16 22:27:32
新樣式類有一個你可以調用的mro方法,它以方法解析順序返回一個父類的列表。
什麼是新式課程?看起來我可以在Django模型中使用它,但是從'object'繼承的任何東西似乎都不會響應'mro'。 – 2015-06-15 14:21:11
考慮對象'x',我們可以得到與呼叫 '型的方法解析順序(X).mro()' 我們可以考慮,如果'x'有'ClassX'與基類: 'ClassX in type(x).mro()' – 648trindade 2017-01-15 01:11:10
- 1. 獲取班級
- 2. 獲取班級類型?
- 3. 從新班級取得班級
- 4. 在「ul」中獲取所選班級
- 5. 如何從一個班級獲取字符串到另一個班級
- 6. 獲取name屬性多個家長
- 7. 獲得班級價值
- 8. 如何獲得當前班級所屬的班級?
- 9. Java。從其他班級執行班級?
- 10. 製作班級內的班級
- 11. 在班級內選擇班級
- 12. 「班級未註冊」哪個班級?
- 13. 返回班級內的私人班級
- 14. 如何訪問班級中的班級
- 15. 從另一個班級訪問班級?
- 16. 如何在另一個班級內使用CSS樣式一個班級但不影響主班級班級
- 17. 一個班級需要另一個班級,其他班級需要第一個班級。我怎麼做?
- 18. 班級互動
- 19. 呼叫班級
- 20. 我的班級應該訪問班級及其班級的類別?
- 21. 作曲家自動加載不在Silex中的班級
- 22. 從父項目獲取孩子的班級名稱
- 23. jQuery獲取類名?只有一個班級需要
- 24. 獲取某個班級所有成員的類型
- 25. 代碼優先EF6未取回班級
- 26. 從div取得班級名稱
- 27. 獲取航班信息
- 28. 一個長班還是很多短班?
- 29. Firebase數據庫獲得兒童長期價值0通過我的班級
- 30. 班級角2 2
@FranckDernoncourt此線程現在是「python get parent class」的最高谷歌搜索結果。它比構成接下來的3個結果的其他SO問題略有關聯。第五個結果是一個沒有給出答案的Python文檔頁面,第六個結果最終是一個Python文檔頁面,它給出了答案,儘管深入一長頁文本。 – 2012-05-17 18:26:33
爲什麼有人會在對SO的解釋更有說服力且易於訪問時閱讀文檔?從我發現這個問題開始,直到我從Google到達這個頁面時,我用了不到5秒的時間,而搜索文檔至少需要我五次,可能幾分鐘。 – jononomo 2012-12-31 02:04:46
作爲一個想快速找到答案的人,搜索谷歌,找到了這個鏈接,並完成了我需要完成的工作:爲什麼人們(我認爲斯洛特的評論已被刪除)抱怨有人提出了一個有效的問題?是的,我知道我在這裏的晚會非常晚。 – limasxgoesto0 2013-10-25 18:11:18