Is there a conflict of libraries here?

Terry Reedy tjreedy at udel.edu
Sun Nov 8 19:47:34 EST 2020


On 11/8/2020 9:56 AM, Chris Angelico wrote:
> On Mon, Nov 9, 2020 at 1:11 AM Terry Reedy <tjreedy at udel.edu> wrote:

>> 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.
>>
> 
> Yes, it's annoying, but it's only annoying when code on the internet
> suggests "from datetime import *",

I agree that the latter is annoying, but I disagree about 'only'.  Names 
pointing to two different objects (or people ;-) are ambiguous without 
additional disambiguation.  If I write 'datetime has an off-by-one bug' 
or 'datetime is great', which datetime do I mean?

idlelib once had multiple name.name pairs, such as Debugger.Debugger, 
and to me, the nuisance of fixing them (as per PEP 434 and subsequent 
decision by the BDFL-delegate) has now been outweighed by the continuing 
benefit.


-- 
Terry Jan Reedy



More information about the Python-list mailing list