@@ -292,9 +292,8 @@ What are the "best practices" for using import in a module?
292292-----------------------------------------------------------
293293
294294In general, don't use ``from modulename import * ``. Doing so clutters the
295- importer's namespace. Some people avoid this idiom even with the few modules
296- that were designed to be imported in this manner. Modules designed in this
297- manner include :mod: `tkinter `, and :mod: `threading `.
295+ importer's namespace, and makes it much harder for linters to detect undefined
296+ names.
298297
299298Import modules at the top of a file. Doing so makes it clear what other modules
300299your code requires and avoids questions of whether the module name is in scope.
@@ -308,11 +307,6 @@ It's good practice if you import modules in the following order:
308307 directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc.
3093083. locally-developed modules
310309
311- Never use relative package imports. If you're writing code that's in the
312- ``package.sub.m1 `` module and want to import ``package.sub.m2 ``, do not just
313- write ``from . import m2 ``, even though it's legal. Write ``from package.sub
314- import m2 `` instead. See :pep: `328 ` for details.
315-
316310It is sometimes necessary to move imports to a function or class to avoid
317311problems with circular imports. Gordon McMillan says:
318312
@@ -343,14 +337,6 @@ module, but loading a module multiple times is virtually free, costing only a
343337couple of dictionary lookups. Even if the module name has gone out of scope,
344338the module is probably available in :data: `sys.modules `.
345339
346- If only instances of a specific class use a module, then it is reasonable to
347- import the module in the class's ``__init__ `` method and then assign the module
348- to an instance variable so that the module is always available (via that
349- instance variable) during the life of the object. Note that to delay an import
350- until the class is instantiated, the import must be inside a method. Putting
351- the import inside the class but outside of any method still causes the import to
352- occur when the module is initialized.
353-
354340
355341Why are default values shared between objects?
356342----------------------------------------------
0 commit comments