In the __init__ method, says that on error it's set to nothing, but never does explicitly.  Does that happen somehow as a side-effect?  Should be clearer anyway.