Seite 1 von 1

Funktion __slots__

Verfasst: Montag 4. März 2013, 14:24
von sashs
Hallo,

ich habe dazu leider nichts gefunden in der Dokumentation.

Normal wird doch dieser Aufruf

Code: Alles auswählen

a.var = 'test'
zu

Code: Alles auswählen

a.__dict__['var']  = 'test'
Aber wie wird es aufgelöst, wenn __slots__ verwendet wird? __slots__ ist ja kein Dictionary.

Viele Grüße

Sascha

Re: Funktion __slots__

Verfasst: Montag 4. März 2013, 15:15
von Sirius3
Hallo sashs,

Dein Bild ist zu einfach. Ich krieg es grad nicht mehr ganz zusammen, wie Python wirklich mit settern umgeht,
aber bei slots wird ja gerade kein __dict__ generiert, sondern für jedes Attribut wird ein setter/getter generiert,
der direkt auf eine interne Tabelle zugreift.

Grüße
Sirius

Re: Funktion __slots__

Verfasst: Montag 4. März 2013, 15:20
von sashs
Vielen Dank für deine Antwort.

Genau das interessiert mich ja, beispielsweise welche interne Tabelle das ist. Wenn es vorher im __dict__ gespeichert war, wo wird jetzt nachgeschaut?

Viele Grüße

Sascha

Re: Funktion __slots__

Verfasst: Montag 4. März 2013, 15:52
von /me
sashs hat geschrieben:Genau das interessiert mich ja, beispielsweise welche interne Tabelle das ist. Wenn es vorher im __dict__ gespeichert war, wo wird jetzt nachgeschaut?
Das ist IMHO ein Implementierungsdetail der jeweiligen Python-Laufzeitumgebung.

Re: Funktion __slots__

Verfasst: Montag 4. März 2013, 15:52
von BlackJack
@sashs: Wenn es hier keiner aus dem Kopf weiss, und verrät, dann könntest Du Dir den Quelltext herunterladen und selber danach suchen. Use the source… :-)

Re: Funktion __slots__

Verfasst: Montag 4. März 2013, 15:58
von sashs
@/me
Vielen Dank.

@BlackJack
Das ist jetzt meine nächste Anlaufstelle. ;-)

Viele Grüße

Sascha