25 Kasım 2009, ÇARŞAMBA
Nasıl Python geçerli modül içerisindeki tüm sınıfları bir listesini alabilir miyim?
İnsanlar bir modül, genellikle bir şey gibi: tüm sınıfları ayıklamak örnekleri çok gördüm
# foo.py
class Foo:
pass
# test.py
import inspect
import foo
for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj
Harika.
Ama gelen tüm sınıfları nasıl öğrenebilirimmevcutmodül.
# foo.py
import inspect
class Foo:
pass
def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj
# test.py
import foo
foo.print_classes()
Bu muhtemelen bir şey çok açık, ama bir şey bulmak mümkün olmamıştır. Herkes bana yardımcı olabilir?
CEVAP
25 Kasım 2009, ÇARŞAMBA
Bunu deneyin:
import sys
current_module = sys.modules[__name__]
İçerik: senin
import sys, inspect
def print_classes():
for name, obj in inspect.getmembers(sys.modules[__name__]):
if inspect.isclass(obj):
print(obj)
Daha da iyisi
clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)
inspect.getmembers()
bir yüklem alır çünkü.
Bunu Paylaş:
Nasıl yerel olarak yüklü Python modüll...
Nasıl modül kendi içinde bir modül içi...
Nasıl eğer bir python değişken bir diz...
Nasıl bir satır sonu (line devamı) Pyt...
Nasıl gıt şubeleri, en son commit göre...