içe; İçerdiği sınıflar üzerinde nasıl yineleyebilirim?yineleme sınıfları dinamik aktarılan bir çocuk paketinden bir modüle sahip dinamik
Ben modülü ithal ve bunun gibi isimler listeleme edilmiştir:
package = current_module.__name__
package = package[:package.rindex(".")] # get the package
package = "%s.sub.%s"%(package,name) # make the name of the child
print "(loading package %s)"%package
module = __import__(package) # this succeeds
for name,obj in inspect.getmembers(module):
print name,type(obj)
Bu yalnızca baskılar modül özelliklerini değil, modül tanımlar sınıf tipleri:
__builtins__ <type 'dict'>
__doc__ <type 'NoneType'>
__file__ <type 'str'>
__name__ <type 'str'>
__package__ <type 'NoneType'>
__path__ <type 'list'>
imported_package <type 'module'>
GÜNCELLEME
Sınıflarımın'de olmadığı anlaşılıyor. fromlist
olmayan boş sürece! Listedeki değerler doğrulanmış gibi görünmüyor; [""]
sadece iyi çalışıyor ve aniden sınıflar ortaya çıkıyor! Bu yüzden
Herkes açıklayabilir misiniz? sınıflara adlarla eşleştiren dicti oluşturmak için:
(Ubuntu'dan piton 2.7.1+ (r271: 86832)
İçe aktarma bir dışlama listesi içermedikçe çalışmıyor, soru güncelleştirildi – Will
Ah ve küçük nokta Ben bir deneme bloğunda nubus issubclass olduğunu düşünüyorum? – Will
(İlk) Gönderen hakkında haklısınız: Hiçbiri] 'Bunun için neden gerekli olduğunu bilmiyorum. (İkinci) Hayır Ben gerçekten "isinstance", "issclass" ve "denemeden" demek istedim. Her sınıf ayrıca 'tip' tipi bir nesnedir. – pvoosten