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

Andreas Jung lists at andreas-jung.com
Di Apr 8 10:46:10 UTC 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://python.net/pipermail/python-de/attachments/20080408/eba93eb8/attachment.pgp