2011-11-20 16 views
7

Bir X sınıfına sahip olduğumu varsayarak, temel sınıfın/sınıfların ve bunların temel sınıfının/sınıflarının vs. olup olmadığını nasıl kontrol ederim?Python'un sınıf hiyerarşisini nasıl denetlerim?

Sana bir sınıf adıyla CTRL + T yazıp gibi hiyerarşi görebiliyordu örneğin Pydev ile Eclipse kullanarak ve Java için yaşıyorum

:

 
java.lang.Object 
    java.lang.Number 
     java.lang.Integer 

Python için mümkün mü?

Eclipse PyDev'de mümkün değilse, bu bilgiyi nereden bulabilirim?

+2

bu blog göstermek için [Python: Liste bir hiyerarşi içinde tüm baz sınıfları] (http://stackoverflow.com/questions/1401661/python-list-all-base-classes-in-a-hierarchy) – kojiro

cevap

8

Hiyerarşi görünümünü açmak için vurgulanan sınıf ismiyle f4 tuşuna basın.

2

Ayrıca, her sınıf, __mro__ adında bir öznitelik taşır; bu, belirli bir sınıfın yöntemleri veya özniteliklerini devralabileceği tüm üst sınıf sınıflarını verir. Onları soldan sağa okuyun. Örneğin:

assert bool.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>) 
assert True.__class__.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>) 
+0

Ayrıca her (yeni stil) sınıfın bir 'mro' yöntemine sahiptir, böylece 'bool' diyebilirsiniz .mro() 've' True .__ class __. mro() 'sırasıyla (tuple yerine liste döndürür). – derenio

İlgili konular