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

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • The Computer Chronicles

    The Computer

    7 Kasım 2012
  • whatever

    whatever

    30 EYLÜL 2005