Why date do not construct from date?
Peter Otten
__peter__ at web.de
Tue Jun 2 03:45:19 EDT 2009
Gabriel Genellina wrote:
> If one can say float(3.0), str("hello"), etc -- what's so wrong with
> date(another_date)?
You can do
x = float(x)
when you don't know whether x is a float, int, or str. Not terribly useful,
but sometimes convenient because making the float() call idempotent allows
you to skip the type check.
def subtract(a, b):
if isinstance(a, str): a = float(b)
if isinstance(b, str): b = float(b)
return a - b
becomes
def subtract(a, b):
return float(a) - float(b)
For date you'd have to make the type check anyway, e. g.
if isinstance(x, tuple):
x = date(*x)
else:
x = date(x) # useless will only succeed if x already is a date
as there would be no other way to create a date from a single value.
So the date() call in the else branch is completely redundant unless you
change date() to accept multiple types via the same signature:
for x in "2000-01-01", datetime.now(), (2000, 1, 1):
print date(x)
Peter
More information about the Python-list
mailing list