5 EKİM 2010, Salı
Nasıl Python, belirli bir sınıfın tüm alt bulabilirim?
Python temel sınıfından devralınan Tüm Dersler almaya çalışan bir yaklaşım istiyorum.
CEVAP
5 EKİM 2010, Salı
Yeni-stil sınıfları alt sınıfları verir: __subclasses__
bir yöntem var
class Foo(object): pass
class Bar(Foo): pass
class Baz(Foo): pass
class Bing(Bar): pass
Burada alt sınıfların isimleri:
print([cls.__name__ for cls in vars()['Foo'].__subclasses__()])
# ['Bar', 'Baz']
Burada alt sınıfların kendilerini:
print([cls for cls in vars()['Foo'].__subclasses__()])
# [<class '__main__.Bar'>, <class '__main__.Baz'>]
Alt sınıfları gerçekten de üs olarak Foo
yapılacaklar listesi onay:
for cls in vars()['Foo'].__subclasses__():
print(cls.__base__)
# <class '__main__.Foo'>
# <class '__main__.Foo'>
Not Eğer subsubclasses istiyorsanız, recurse gerekecek:
def all_subclasses(cls):
return cls.__subclasses__() [g for s in cls.__subclasses__()
for g in all_subclasses(s)]
print(all_subclasses(vars()['Foo']))
# [<class '__main__.Bar'>, <class '__main__.Baz'>, <class '__main__.Bing'>]
Bunu Paylaş:
Nasıl benim Python sitesi-paketleri di...
Nasıl Python modülü kaynaklarının yeri...
Nasıl script'Python ile s dizin b...
Python python kullanarak nasıl yolumu ...
Ben başvuru belirli bir tablo yabancı ...