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

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012