'''

Object oriented programming and classes in Python

https://www.tutorialspoint.com/python3/python_classes_objects.htm

Creating Classes

Instance Objects

Accessing Members

Data Hiding (the double underscore prefix)

Built-in class attributes 

Garbage collection

The Constructor

Operator Overloading (https://thepythonguru.com/python-operator-overloading/)

Methods and Operators

Inheritance - implementing a subclass

Overriding Methods

Recursive calls to Methods

Class variables

Class Methods, Static Methods 

    - https://realpython.com/instance-class-and-static-methods-demystified/

'''