By putting the creation in the constructor you get to remove checks like this (and with exception-based programming the need to return booleans is also removed)
http://en.wikibooks.org/wiki/Python_Programming/Exceptions