Session08 - Generators, Decorators, Context Managers, Iterators

It is highly unorthodox to call `self.__init__` manually except when using `super` and overriding the method from a parent class.  I would simply manipulate the instance attributes of `self` in this method directly and return self after everything is in good 'startup' condition.