On Tuesday, 26 August 2014 23:55:51 UTC+1, Twirlip2 wrote: > It doesn't seem immediately obvious how to get a definitive list > of which names to avoid using (and therefore, inadvertently > 'shadowing', as I did today). > > For example, > <https://docs.python.org/3/tutorial/modules.html#standard-modules> > doesn't list the filename 'code.py', which is the one I clashed > with today. > > Of course, if all else fails, I will be sure to manually search > the Python installation directory for possible clashes, but there > must be a more logically secure way, one more integral to the > language itself.
Does the interaction below (copied from an IDLE session) show a safe and reliable way to do it? >>> from importlib.util import find_spec >>> find_spec('code') ModuleSpec(name='code', loader=<_frozen_importlib.SourceFileLoader object at 0x01139330>, origin='I:\\Python34\\lib\\code.py') >>> find_spec('ftang') >>> This seems to show that I can safely use the name 'ftang.py' for a module in the search path, if I want; but might it be dangerous in some way, or might it fail to find some module name that I might still cause a clash with? -- https://mail.python.org/mailman/listinfo/python-list