Я успешно использовал свойства Python, но я не вижу, как они могут работать. Если я разыскиваю свойство вне класса, я просто получаю объект типа property
:
@property
def hello(): return "Hello, world!"
hello # <property object at 0x9870a8>
Но если я помещаю свойство в класс, поведение очень отличается:
class Foo(object):
@property
def hello(self): return "Hello, world!"
Foo().hello # 'Hello, world!'
Я заметил, что unbound Foo.hello
все еще является объектом property
, поэтому создание экземпляра должно делать магию, но что это за магия?