This is a great reading on `@property` http://www.programiz.com/python-programming/property.