SORU
27 Ocak 2011, PERŞEMBE


Bir sınıfta dize adı Python dinamik örnekleme dinamik olarak ithal modülü

Python, belirli bir sınıfın örneğini oluşturmak için, bir dize, ama bu sınıf 'hayat' bir dinamik modülü içe. adını bilmek zorundayım Örnek aşağıdaki gibidir:

loader sınıfı kod:

import sys
class loader:
  def __init__(self, module_name, class_name): # both args are strings
    try:
      __import__(module_name)
      modul = sys.modules[module_name]
      instance = modul.class_name() # obviously this doesn't works, here is my main problem!
    except ImportError:
       # manage import error

-dinamycally-dolu-bazı modül komut:

class myName:
  # etc...

Bu düzenleme, bazı önceden tanımlanmış davranışları aşağıdaki loader sınıfı tarafından kullanılacak dinamik olarak yüklenen-modül dinamik olarak yüklenen modülleri... herhangi yapmak için kullanıyorum

Herhangi bir fikir takdir edilmektedir

Teşekkürler!

CEVAP
27 Ocak 2011, PERŞEMBE


getattr kullanabilirsiniz

getattr(module, class_name)

sınıf erişmek için. Daha tam kod:

module = __import__(module_name)
class_ = getattr(module, class_name)
instance = class_()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • lane182videos

    lane182video

    6 EKİM 2011
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006