[Python-de] Initialisierung einer Klasse

Uwe Tapper Uwe.Tapper at dlr.de
Wed Aug 15 16:14:51 EDT 2001


Hallo,

Carsten Tilch wrote:
> 
> # Python2.1.1
> # Warum ist das Dictionary, der dritten Instanz, nicht leer?
                                  ^^^^^^^
nicht nur der dritten (s.u.)

> 
> class Dic:
>     def __init__(self,dic = {}):

wirf mal einen Blick in's Tutorial (4.7.1 Argumente mit Vorgabewerten):
http://starship.python.net/crew/gherman/publications/tut-de/online/tut/node6.html#SECTION006710000000000000000

Der Vorgabewert "dic = {}" wird nur einmal (waehrend der Definition)
ausgewertet, nicht bei jedem Aufruf von "__init__".

>         self.dic = dic
>     def setDic(self,key,value):
>         self.dic[key] = value
>     def getDic(self):
>         return self.dic
> 
> a = Dic()
> print a.getDic()
> #gibt aus : {}
> b = Dic()
> b.setDic('key','value')
> print b.getDic()
> #gibt aus : {'key': 'value'}
> c = Dic()
> print c.getDic()
> #gibt aus : {'key': 'value'}

print a.getDic()
gibt jetzt ebenfalls "{'key': 'value'}" aus!

> 
> # Danke für eure Hilfe
> # Carsten
> 

Uwe



More information about the Python-de mailing list