Erstellen einer Klasse mit allen in einer Datei angegebenen Elementen mithilfe von ConfigParser

Ich habe eine INI-ähnliche Datei mit allen Werten erstellt, die ich später in meinem Programm benötige. Siehe unten:

[debugging]
checkForAbort = 10
...

[official]
checkForAbort = 30
...

Ich möchte alle diese Elemente in einer einzigen Klasse lesen und sie von anderen Teilen meines Python-Projekts aus zugänglich machen. Was ich bisher habe, ist der folgende Code:

from ConfigParser import SafeConfigParser
import glob

class ConfigurationParameters
    def __init__(self):
        self.checkForAbortDuringIdleTime = None     

    parser = SafeConfigParser()

    # making a list here in case we have multiple files in the future!
    candidatesConfiguration = ['my.cfg']
    foundCandidates = parser.read(candidatesConfiguration)
    missingCandidates = set(candidatesConfiguration) - set(found)
    if foundCandidates:
        print 'Found config files:', sorted(found)
    else
        print 'Missing files     :', sorted(missing)
        print "aborting..."


    # check for mandatory sections below
    for candidateSections in ['official', 'debugging']:
        if not parser.has_section(candidateSections)
            print "the mandatory section", candidateSections " is missing"
            print "aborting..."

    for sectionName in ['official', 'debugging']:
        for name, value in parser.items(section_name):
            self.name = value

Ich bin neu in Python, sehe aber immer noch viele Probleme mit meinem Code:

Ich bin gezwungen, für jedes Element in meiner Klassendatei ein Attribut hinzuzufügen. und halten Sie die Konfigurationsdatei und meine Klasse die ganze Zeit synchron.Diese Klasse ist kein Singleton, daher wird das Lesen / Parsen von jedem Ort aus durchgeführt, an dem es importiert wird!Wenn ein Wert zur Konfigurationsdatei hinzugefügt wird, der in meiner Klasse nicht definiert ist, stürzt er wahrscheinlich ab!

Wie soll ich stattdessen dieses Problem lösen? Können Klassenattribute dynamisch erstellt werden?

Meine Klasse muss nur von den Werten lesen, sodass kein Schreiben in die Konfigurationsdatei erforderlich ist!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage