breathe_easy hat geschrieben:Danke schön!
Oder, wenn du etwas damit "spielen" willst
Code: Alles auswählen
class eintrag (object):
import sys
class selectAttr(Exception):
def __init__(self, value):
Exception.__init__(self, value)
def case(self, value):
ecls, eobj, tb = eintrag.sys.exc_info()
if ecls is eintrag.selectAttr and eobj.args[0] == value:
return ecls
return None
def __init__ (self, name, vorname):
object.__setattr__(self,"name",name)
object.__setattr__(self,"vorname",vorname)
def __getattribute__(self, attr):
s = eintrag.selectAttr(attr)
try:
raise s
except s.case('vorname'):
print "Get Vorname:"
return object.__getattribute__(self,"vorname")
except s.case('name'):
print "Get Name:"
return object.__getattribute__(self,"name")
except:
try:
return object.__getattribute__(self,attr)
except:
return "ERROR: no attribute %s" % attr
def __setattr__(self,attr,value):
s = eintrag.selectAttr(attr)
try:
raise s
except (s.case('vorname'), s.case('name')):
print "ERROR: attribute %s protected" % attr
except:
print "Set %s to %s" % (attr,value)
object.__setattr__(self,attr,value)