SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • RocketJump

    RocketJump

    22 ŞUBAT 2006
  • tseyina

    tseyina

    2 AĞUSTOS 2006