On 22/07/18 05:45, Cameron Simpson wrote:
On 22Jul2018 06:43, Abdur-Rahmaan Janhangeer <arj.pyt...@gmail.com> wrote:
i have found some reputable books that include import within code

with ...
   import x

if ...
   import y

def ...
    import z

according to me they should be placed at the top. but an advantage of it is
optimisation where you only load modules if necessary

so, import within code can be called unpythonic?

It is discouraged, because when the imports are at the top they're really obvious. That is a huge gain for maintenance and readability.

Importing a module is _usually_ pretty cheap. There are some reasons to put off imports until the code which needs them runs, but they are all fairly rare:

Circular imports: 2 codependent modules. If you have:

  module A:
    import B

  module B:
    import B

That won't work: the second import (whichever it turns out to be) will fail. One workaround is to make one of the modules put off the import. A better approach is usually to redesign things so that they don't do a mutual import (move classses etc around, or merge them). This is always feasible, but often is.


I don't ever recall seeing a module try to import itself, but then perhaps you meant module B should be importing module A? :)

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to