Practical Python Tips: Classes, Properties, and Decorators · John's Blog