A question about import

Cameron Simpson cs at cskk.id.au
Fri Feb 16 16:13:50 EST 2024


On 16Feb2024 20:32, MRAB <python at mrabarnett.plus.com> wrote:
>On 2024-02-16 20:07, Gabor Urban via Python-list wrote:
>>I need something about modules to be clarified.
>>
>>Suppose I have written a module eg: ModuleA which imports an other
>>module, let us say the datetime.
>>
>>If I import ModuleA in a script, will be datetime imported automatically?
>>
>Yes. When a module is imported it can import other modules.

But note that `datetime` does not magicly get put in the script's 
namespace.

Module A:

     import datetime

Script:

     import A

In the code in module A the name datetime is known and can be used.

In the code in the script the name A is known and can be used. Importing 
A does not magicly set the name datetime in the script's namespace - 
imagine the the pollution!

You _can_ access it as A.datetime because it is in the A module's 
namespace. But really if you just wanted datetime for direct use in the 
script you would import it there too:

     import datetime
     import A

Note that the datetime module is only actually loaded once. The import 
binds the name into your local namespace like any other variable.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Python-list mailing list