[Python-Dev] problem with assignment shadows builtin warning (original) (raw)

Samuele Pedroni pedronis@bluewin.ch
Mon, 16 Jun 2003 22🔞57 +0200


At 15:53 16.06.2003 -0400, Jeremy Hylton wrote:

On Mon, 2003-06-16 at 15:33, Jeremy Hylton wrote: > My initial reaction was that we should not have a deprecation warning > for this kind of shadowing, but I'm growing less comfortable about the > names. I'd definitely complain about a top-level "import list"; I don't > know why it is any better as a module within a package.

Guido observed that a top-level "import list" does not generate a warning. So regardless of the propriety of naming a module in a package "list", it should not generate a warning. I guess someone needs to patch the import code to manipulate the parent namespaces in a way that won't generate an exception.

so code like

<pkg/__init__.py>

def reveal(): print list

</pkg/__init__.py>

if pkg has a list subpackage/module will show that we are cheating, after caching is implemented, wrt to the old global->builtins lookup rule, because after:

import pkg.list

pkg.dict['list'] will be a module

but

pkg.reveal() will print the list builtin.

regards.