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

Felix Schwarz felix.schwarz at web.de
Di Apr 8 10:28:34 UTC 2008


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?

Vielen Dank,
fs