Ich arbeite gerade an einen großen Programm.
Ich habe in diesen Projekte die Packagestruktur folgendermasen aufgebaut:
lib/
common/
tabs/
...
Nur Importiere ich haufenweise die gleichen Module und dadurch der Tabmanager rekusiv ist ruft er sich immer wieder auf, was ein wenig zeit bei der Generierung brauch, da das ganze dynamisch erst erzeugt wird. Daher habe ich mir für die Performe gedacht ich importiere einmal alle Klassen und registriere sie in ein Dict.
Ich habe da schon was gebastelt und getestet:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
class ClassRegister():
"""This registered all classes"""
def __init__(self):
self.classes = {}
def registerClass(self, name, classobject):
self.classes[name] = classobject
def getClassInstanz(self, name):
return self.classes[name]
Code: Alles auswählen
cr = ClassRegister()
cr.registerClass("Gtk", Gtk)
cr.registerClass("Gdk", Gdk)
Code: Alles auswählen
self.Gtk = classregister.getClassInstanz("Gtk")
self.Gdk = classregister.getClassInstanz("Gdk")
Wie könnte man das Besser lösen?