Я успішно використовую властивості 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
об'єктом, тому екземпляр класу повинен робити магію, але що це за магія?