저는 솔리드 자바 (및 Matlab) 배경에서 왔으며 최근에 파이썬 (3.4)을 가르치려고 노력하고 있습니다. Java API 문서 (http://docs.oracle.com/javase/7/docs/api/)에서 특정 클래스에 대한 설명서에는 항상 해당 클래스의 조상에 대한 개요가 표시됩니다 (예 : this screenshot 참조).유형/클래스의 파이썬 계층 구조에 대한 개요를 얻으려면 어떻게해야합니까?
이제 파이썬 클래스에 대해 유사한 조상 계층 구조를 볼 수있는 방법이 있는지 궁금합니다. 나는 파이썬이 객체 지향 언어이기 때문에, 모든 원시 타입이 아닌 객체가 될 것이라는 가정에서부터 일하고있다. 서로 다른 유형의 조상을 이해하면 반복 가능성, 순서,보기 및 목록에 대한 이해가 크게 향상됩니다.
비슷한 질문에 대한 답변 (예 : here)에서 제안한 것처럼 몇 가지 시도를했습니다. 그러나 inspect.mro(cls)
이 항상 작동하는 것은 아닙니다.
In[30]: type({}.keys()) Out[30]: dict_keys
가 나는 또한 반복 가능한 상속하지 않는 목록을 배울 매우 놀랐습니다 :
inspect.getmro(dict_keys)
도 dict_keys하지만이 유형입니다 : 예를 들어, 다음과 같은 오류를 제공합니다
In[34]: inspect.getmro(list) Out[34]: (list, object)
제 질문은 주로 표준 Python 라이브러리의 계층 구조를 보는 방법 (그리고 이상적으로 찾아보기),리스트/시퀀스/뷰/iterables가 형식적으로 어떻게 관련되는지를 비롯하여 기본 형식의 계층 구조를 이해하는 방법에 대한 다른 의견도 매우 환영받을 것입니다. 파이썬 튜토리얼은 정말 훌륭한 것은 아닙니다.
* 파이썬에서 모든 것은 * 객체입니다. – Ffisegydd
예, @Ffisegydd, 정확히 내가 가정하고있는 가정입니다. :) 그런데'type ({}. keys()) '는'dict_keys '를 산출하지만'dict_keys'를 산출하면'dict_keys가 정의되지 않았습니다. '... – EelkeSpaak
개요 https://docs.python.org/3/reference/datamodel.html#the-standard-type-hierarchy –