Vorbeugen Sie vor, dass neue Attribute außerhalb von __init __ @ erstellt werde

Ich möchte in der Lage sein, eine Klasse (in Python) zu erstellen, die einmal mit @ initialisiert wurd__init__ akzeptiert keine neuen Attribute, akzeptiert jedoch Änderungen an vorhandenen Attributen. Es gibt verschiedene Möglichkeiten, dies zu tun, zum Beispiel ein__setattr__ Methode wie

def __setattr__(self, attribute, value):
    if not attribute in self.__dict__:
        print "Cannot set %s" % attribute
    else:
        self.__dict__[attribute] = value

und dann bearbeiten__dict__ direkt in__init__, aber ich habe mich gefragt, ob es einen "richtigen" Weg gibt, dies zu tun?

Antworten auf die Frage(22)

Ihre Antwort auf die Frage