[Python-ideas] Please reconsider the Boolean evaluation of midnight
Donald Stufft
donald at stufft.io
Thu Mar 6 00:10:12 CET 2014
On Mar 5, 2014, at 6:08 PM, M.-A. Lemburg <mal at egenix.com> wrote:
> On 05.03.2014 23:38, Donald Stufft wrote:
>>
>> On Mar 5, 2014, at 5:35 PM, M.-A. Lemburg <mal at egenix.com> wrote:
>>
>>> On 05.03.2014 23:16, Ben Finney wrote:
>>>> "M.-A. Lemburg" <mal at egenix.com> writes:
>>>>
>>>>> I don't know what all the fuzz is about. There are lots of types
>>>>> in Python that evaluate to False in certain corner cases, e.g.
>>>>> "", (), [], {}, 0, 0.0, 0j, None, etc.
>>>>>
>>>>> datetime.time(0,0,0) is just another one :-)
>>>>
>>>> The salient difference is:
>>>>
>>>> With the former set, they all embody concepts of either “empty” or “zero
>>>> magnitude”. They strongly connote “not there” within their domain of
>>>> values, hence map well to Boolean false.
>>>>
>>>> With ‘datetime.time’ there is no equivalent: midnight is not special in
>>>> the way “empty” or “zero magnitude” are. Midnight is an arbitrary point
>>>> on a continuum, and is not a “not there” value.
>>>
>>> This is true in a date/time continuum, but not true if you regard
>>> time as "time of day". In the latter interpretation, the day starts
>>> at midnight, so the day is "not there" yet at midnight.
>>
>> The day is absolutely here at midnight. Midnight isn’t some void where
>> time ceases to exist.
>
> No, but midnight starts the day, just like 0 starts the positive
> real numbers (itself not being positive) :-)
And yet 0 is False not because it starts the positive real numbers (not sure
what that has to do with a value in an integer type) but because it signifies
an empty or zero magnitude object.
>
>>>> It should not be Boolean false any more than any other time.
>>>
>>> Just like with most interpretations, you can just as easily find
>>> one which implies the exact opposite.
>>>
>>> It's all smoke and mirrors anyway :-)
>>>
>>> Perhaps Tim just wanted to be able to make float(time(0,0,0)) return
>>> 0.0 seconds some day. That's what mxDateTime does for time values.
>>>
>>> --
>>> Marc-Andre Lemburg
>>> eGenix.com
>>>
>>> Professional Python Services directly from the Source (#1, Mar 05 2014)
>>>>>> Python Projects, Consulting and Support ... http://www.egenix.com/
>>>>>> mxODBC.Zope/Plone.Database.Adapter ... http://zope.egenix.com/
>>>>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
>>> ________________________________________________________________________
>>> 2014-04-09: PyCon 2014, Montreal, Canada ... 35 days to go
>>>
>>> ::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
>>>
>>> eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
>>> D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
>>> Registered at Amtsgericht Duesseldorf: HRB 46611
>>> http://www.egenix.com/company/contact/
>>> _______________________________________________
>>> Python-ideas mailing list
>>> Python-ideas at python.org
>>> https://mail.python.org/mailman/listinfo/python-ideas
>>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>>
>> -----------------
>> Donald Stufft
>> PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
>>
>
> --
> Marc-Andre Lemburg
> eGenix.com
>
> Professional Python Services directly from the Source (#1, Mar 05 2014)
>>>> Python Projects, Consulting and Support ... http://www.egenix.com/
>>>> mxODBC.Zope/Plone.Database.Adapter ... http://zope.egenix.com/
>>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
> ________________________________________________________________________
> 2014-04-09: PyCon 2014, Montreal, Canada ... 35 days to go
>
> ::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
>
> eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
> D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
> Registered at Amtsgericht Duesseldorf: HRB 46611
> http://www.egenix.com/company/contact/
-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140305/50b4e5bf/attachment-0001.sig>
More information about the Python-ideas
mailing list