Errors

This does produce an AttributeError, but you didn't need to create your own class to cause the error. Remember that everything is an object and that attributes are properties of an object. Attempting to access a attribute on any object that doesn't have that property will cause an AttributeError. For example:

    def foo():
        bar = u'a'
        print(bar.baz)

I didn't take any points off for this, I just wanted to clarify that AttributeErrors apply to all objects; not just user defined classes.