the contents of the module are made available for use in the current modulebut they are not made part of the current module' namespace that' why the identifiers have to be referenced using the dot/module name notation when the from/import version of the import statement is usedfrom math import powx the contents of the module are made available to the current module just like with the plain version but the identifiers from the imported module are included in the namespace of the current modulewhich can then be used as if they were defined within the current module the from/import version of the import statement has two forms when the asterisk is used as in the previous exampleeverything in the module is included and made available instead of including everythingyou can specify individual components to be includedfrom math import sqrtpow sqrtx powx you may be askingwhy are there two ways to import modules why not just use the from/import version and make all identifiers available within the current modulethe short answer isthere are times when different module authors may use the same name for function or classyet provide different functionality identifiers are unique within given namespacethere can be only one instance of each identifier in pythonunlike other languagesan identifier can be redefined at any time with the new definition replacing the original consider the code segment below which illustrates simple program consisting of top-level driver (main pyand two supplemental modules (moda py and modb pymain py import moda import modb intraw_input"enter value oney intraw_input"enter value twov moda userfnctxy modb userfnctxy moda py from math import def userfnctxy ) sqrtx return modb py def userfnctxy )return