How do Python properties work? - Stack Overflow The reason that the actual property object is returned when you access it via a class Foo hello lies in how the property implements the __get__(self, instance, owner) special method: If a descriptor is accessed on an instance, then that instance is passed as the appropriate argument, and owner is the class of that instance