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

  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006