2017-01-30 7 views
-1

Hier ist der Einstiegspunkt für meine Anwendung.Wie alias ich eine Modulvariable?

from clsConfiguration import clsConfiguration 
import also_reads_settings_file 
import settings 

def main(): 
    settings.config = clsConfiguration() 
    print settings.config.name_prefix 
    also_reads_settings_file.main() 

if __name__ == '__main__': 
    try: 
     main() 
    except: 
     print "bad stuff happened..." 

Zu diesem Zeitpunkt ist die Einstellungsmodul eine Zeile und speichert ein Konfigurationsobjekt:

config = "" 

Die Konfigurationsklasse, ohne 20 oder so Variablen:

class clsConfiguration: 

    def __init__(self): 

     self.name_prefix = "ou3_" 
     self.app_short_name = "XYZ" 

Hier Modul, das verwendet das Einstellungsmodul, ohne es zu initialisieren (das wird im Hauptmodul ausgeführt):

import settings 

def main(): 

    print settings.config.app_short_name 

if __name__ == '__main__': 
    try: 
     main() 
    except: 
     print "bad stuff happened..." 

Basierend auf dem oben genannten, wie erstelle ich einen Alias ​​für settings.config? Im obigen Beispiel kann ich einen Wert nur aus dem Konfigurationsobjekt abrufen, indem ich einen vollständig qualifizierten Namen, settings.config.app_short_name, verwende.

Es wäre viel einfacher/besser, wenn ich den Modul- und Variablennamen zum Beispiel als XYZ bezeichnen könnte. Die Eigenschaft, nach der ich suche, wird xyz.app_short_name statt settings.config.app_short_name. Ein Teil davon ist, dass ich mich nicht mit den längeren Namen befassen möchte, sondern auch vermeiden möchte, alten Code zu refurbizieren, um die längeren Namen zu verwenden.

+3

Ich weiß, das ist Beispielcode, aber bitte bitte entfernen Sie diese sinnlosen außer Blöcke. Es ist viel nützlicher, den tatsächlichen Fehler und die Rückverfolgung von Python zu bekommen als einen sinnlosen Kommentar. –

Antwort

0
from settings import config 

oder

from settings import config as xyz 

Ist das, was Sie meinen?

+0

Dies funktioniert nicht, da der Fragesteller 'settings.config' neu zuweist. – user2357112

+0

'import settings.config als xyz' führt zu' Kein Modul namens config' – DenaliHardtail

+0

mein Fehler. Ich machte eine Bearbeitung – denvaar