Ich habe Python-Eigenschaften erfolgreich verwendet, sehe aber nicht, wie sie funktionieren könnten. Wenn ich eine Eigenschaft außerhalb einer Klasse dereferenziere, erhalte ich nur ein Objekt vom Typ property
:
@property
def hello(): return "Hello, world!"
hello # <property object at 0x9870a8>
Aber wenn ich eine Eigenschaft in eine Klasse einbaue, ist das Verhalten ganz anders:
class Foo(object):
@property
def hello(self): return "Hello, world!"
Foo().hello # 'Hello, world!'
Ich habe bemerkt, dass ungebunden Foo.hello
immer noch das property
Objekt ist, also muss Klasseninstanziierung die Magie sein, aber welche Magie ist das?