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