Because you’re assuming foo
won’t be renamed when it becomes a function. A function should start with a verb, say get_foo()
, because just foo()
tells me nothing about what the function does (or what to expect as output). If you make it a property, get_
is implicit.
So if the age is computed from the year of birth for example, it’s really e.g. thing.age
or thing.get_age()
- both of which are fine, but I’d pick the property version.
tldr