[Python-de] Re: dynamische variablen generieren

Marco Aschwanden PPNTWIMBXFFC at spammotel.com
Mon Sep 27 17:30:36 CEST 2004


Ein anderer Weg um Variable zu "erschaffen". Meiner Meinung nach der 
sicherste und wahrscheinlich um einiges schneller als Eval und compile zu 
bemühen:

>>> class VarInstance(object):
... 	def __init__(self, dictWithValues):
... 		self.__dict = dictWithValues
... 	def __getattr__(self, wants):
... 		if self.__dict.has_key(wants):
... 			return self.__dict[wants]
... 		else:
... 			raise NameError
... 		
>>> dictWithValues = {'var1':'Hi', 'var2':3, 'var4':45}
>>> myVars = VarInstance(dictWithValues)
>>> myVars.var1
'Hi'
>>> myVars.var2
3
>>> myVars.var3
Traceback (most recent call last):
   File "<interactive input>", line 1, in ?
   File "<interactive input>", line 8, in __getattr__
NameError
>>> myVars.var4
45
>>>

Mit vielen Gruss-Instanzen,
Marco