[Python-de] property-Funktion mal nicht in Klassen verwenden

Andreas Jung lists at andreas-jung.com
Di Apr 8 12:46:10 CEST 2008



--On 8. April 2008 12:28:34 +0200 Felix Schwarz <felix.schwarz at web.de> 
wrote:

> Hi,
>
> die meisten kennen wohl die property-Funktion aus Python, mit
> der man folgenden Code schreiben kann:
># -----------------------------------------------------------
> class Foo(object):
>      @property
>      def bar(self):
>          return 1
> foo = Foo()
> foo.bar
># -----------------------------------------------------------
>
> Ich habe mir jetzt die Frage gestellt, ob auch soetwas möglich
> wäre:
># -----------------------------------------------------------
> def bar2(self):
>      return 42
> bar = property(bar2)
> bar
># -----------------------------------------------------------
>
> Da ich hier frage, funktioniert der zweite Code natürlich nicht,
> es wird nur ein property-Objekt zurückgegeben. Gibt es da einen
> kleinen Trick, um das zweite Szenario (Methodenaufruf über Auslesen
> einer Variable) zu ermöglichen?



@property() ausserhalb einer new-stye Klasse macht
überhaupt keinen Sinn (siehe die entsprechede Doku zu property()).
Wenn Du irgendwas in Art braucht, dann bastel Dir eine entsprechende
Klasse, die die Zuweisung kontrolliert.

Andreas

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 194 bytes
Beschreibung: nicht verfügbar
URL         : <http://mail.python.org/pipermail/python-de/attachments/20080408/eba93eb8/attachment.pgp>


Mehr Informationen über die Mailingliste python-de