2016-03-22 19 views
0

Listesinden birden sınıflar oluşturun. Bir sınıfın bir örneği aşağıda gösterilmiştir.şöyle ipi bir listesi var Strings

class WelcomeHandler(BaseHandler): 
     def get(self): 
      response = HTTPResponse() 
      response.write('WelcomeHandler') 
      return response 
+0

Çoğalt? http://stackoverflow.com/questions/5352781/how-to-set-class-names-dynamically – egpbos

cevap

1

Sen bir sözlük derslere kullanmalıdır ve bunları şu şekilde tanımlayabiliriz:

classes = {} 
for name in classlist: 
    class Handler(BaseHandler): 
     def get(self): 
      response = HTTPResponse() 
      response.write(self.__class__.__name__) 
      return response 
    Handler.__name__ = name 
    classes[name] = Handler 
+0

Bu sınıfları, söz konusu adlardan sözlükteki another.py'den alabilir miyim? – ak52

+0

Tam olarak değil. 'Import myfile 'i kullanabilirsiniz; WelcomeHandler = myfile.classes ['WelcomeHandler'] ', yine de. (Bu dosyaya 'myfile.py' denir. – zondo

1

sınıfa ismini haritalama bir sözlük yapın:

classLookup = { 
    'ContactHandler': ContactHandler, 
    'LogHandler' : LogHandler, 
    #... 
} 

Sonra dize dayalı olarak doğru sınıf örneğini olabilir

className = input('what class to instantiate?') 
handler = classLookup[className]()