Is there a conflict of libraries here?

Richard Damon Richard at Damon-Family.org
Sun Nov 8 11:40:21 EST 2020


On 11/7/20 9:26 PM, Terry Reedy wrote:
> On 11/6/2020 5:05 PM, Steve wrote:
>> "Right, because the name "datetime" points to the class datetime in the
>> module datetime.
>
> A module containing an object with the same name as the module is a
> real pain, a constant mental papercut.  I consider datetime.datetime
> to be a design mistake*.  You are the 2nd person in about a month to
> post the same resulting code problem.
>
> * Either the class should have been 'Datetime', capitalized like
> classes in modules other that builtins generally should be, or the
> module should have been given a different name.  I personally would
> always rename the module when imported.
>
Which says that if you do:

import datetime

from datetime import datatime as Datatime


you get the class in your module as the more modern capitalized name,
and avoid the name conflict. It just says that in your code, to use the
class you either need to use Datatime or datetime.datetime

-- 
Richard Damon



More information about the Python-list mailing list