Andi, ob getter und setter privateFunktionen sein sollten getter und setter verdienen keine Diskussion, die stammen aus einer anderen Welt. In Python ist die Grundregel: wir sind alle erwachsen. Also nix mit class fisch: getwilli(self,willi): return willi sondern: whatever=fisch.willi direkter Attributzugriff. Und gut ist. WENN irgendwann der THEORETHISCHE Fall eintritt, daß das nimmer ein simples dict-lookup ist, sondern eine Funktion oder ein Webservice (jaaa, auch ich habe die ganzen Kapselungstheorien gelesen), DANN, und genau DANN, und KEINE SEKUNDE FRÜHER, wird mit property diese Möglichkeit geschaffen. Für mich ist es so: mit Python programmiere ich für das Leben wie es ist; was auch eine ZEN-Ansicht ist. Nicht für eine Welt, wie sie sein sollte :) Interne Initialisierung:
proc = Procedure("foo") proc.args[0] = "arg1" proc.args[1] = "arg2"
Hmmm... die Instanzvariablen einer gewöhnlichen Python-Klasse liegen in einem gewöhnlichen Dictionary. Also: class fisch: pass fisch.schuppe=True fisch.farbe="schwarz" ergibt dann, daß fisch.__dict__ die schuppe und die farbe enthält (+ ein paar innereien) Welchen konkreten Vorteil erhoffst Du Dir dadurch, daß Du NOCHMALS so ein Dictionary machst? Es ist keinen Deut sicherer, es ist langsamer und braucht mehr Zeichen beim Tippen. Wenn irgendjemand MÜLL in Dein ___args schiebt, geht das Programm genauso vor die Hunde wie wenn jemand das __dict__ des Objekts versaut. Meine Empfehlung daher: #define private public und schau nach, ob die Welt untergeht. Wenn nicht, ist all das private für nüscht. Lieber Gruß Harald -- GHUM Harald Massa persuasion python postgresql Harald Armin Massa Reinsburgstraße 202b 70197 Stuttgart 0173/9409607 _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de