[Python-Dev] Keep default comparisons - or add a second set?
Noam Raphael
noamraph at gmail.com
Wed Dec 28 23:11:24 CET 2005
On 12/29/05, Robert Brewer <fumanchu at amor.org> wrote:
>
> Just to keep myself sane...
>
> def date_range(start=None, end=None):
> if start == None:
> start = datetime.date.today()
> if end == None:
> end = datetime.date.today()
> return end - start
>
> Are you saying the "if" statements will raise TypeError if start or end are
> dates? That would be a sad day for Python. Perhaps you're saying that there
> is a "meaningful comparison" between None and anything else, but please
> clarify if so.
Yes, I'm suggesting that they will raise a TypeError. Your example
shows that the change is not compatible with a lot of existing Python
code, which means that it's a Python 3000 thing. The following code
will continue to work:
def date_range(start=None, end=None):
if start is None:
start = datetime.date.today()
if end is None:
end = datetime.date.today()
return end - start
Using "is None" instead of "== None" is considered a better style even now.
Noam
More information about the Python-Dev
mailing list