I just tried it out and doing that breaks the other methods.  I think the solutions are either leave it like this or have __init__ coerce the input to a datetime or something.  I'm leaning towards the latter, as every instance of DateSpan should have the same type for startdate and enddate, and I don't think that's guaranteed right now.