die folgende Klasse vor:Controlling Getter und Setter für eine Klasse der Python
class Token:
def __init__(self):
self.d_dict = {}
def __setattr__(self, s_name, value):
self.d_dict[s_name] = value
def __getattr__(self, s_name):
if s_name in self.d_dict.keys():
return self.d_dict[s_name]
else:
raise AttributeError('No attribute {0} found !'.format(s_name))
In meinem Code Token haben eine andere Funktion (wie get_all() wich Rückkehr d_dict hat (s_name), die mir sagen, ob mein Token hat ein bestimmtes Attribut).
Wie auch immer, ich denke, das ist ein Fehler in meinem Plan, da es nicht funktioniert: Wenn ich eine neue Instanz erstellen, versuchen Python __setattr__('d_dict', '{}')
aufrufen.
Wie kann ich ein ähnliches Verhalten (vielleicht in einer mehr pythischen Weise?) Erreichen, ohne etwas wie Token.set (Name, Wert) und get (Name) zu schreiben, die ich setzen oder ein Attribut für ein erhalten möchte Zeichen.
Kritiker über Designfehler und/oder Dummheit willkommen :)
danken!
Ich denke, ich werde das tun :) Wie auch immer, ich benutze Python 3.1 so alle meine Klasse sind neue Stilklasse. – thomas