Python Modules - Drexel CCI

[Pages:12]PYTHON MODULES

Brandon McKay

Reasons for using modules

? Definitions of functions and variables are lost after quitting each session of the Python interpreter

? Creating a script file of your Python input for each individual program would be cumbersome and redundant

? Modules allow you to import code from an external file and use it in your program/script, in a similar fashion as libraries used in C++

Importing modules

? File name is the module's name with .py extension ? The "import" command allows the functions/statements of

the module to be accessed locally

? Import functions/statements of "module.py" >>> import module

? Use a function from "module.py" >>> module.function(argument)

? Copy the function to a local name >>> localFunction = module.function >>> localFunction(argument)

Importing modules (cont.)

? Can import selected portions of the module

? Import selected names in the module as local names >>> from module import function1, function2 >>> function1(argument) >>> function2(argument)

? Import all names except those that start with "_" >>> from module import *

Executing modules as scripts

? When importing modules, the __name__ variable is set to the module's name

? When running a module directly from the command line, the __name__ variable is instead set to __main__

? This allows the ability to execute code depending on whether the module is being used as a script or as an imported module

$ python module.py arguments (__name__="__main__") >>> import module (__name__="module")

Executing modules as scripts (cont.)

? Within "module.py":

if __name__ == "__main__": import sys function(sys.argv[1])

? The code will only be executed if the module is ran as the "main" file from the command line

? The "sys" module is needed to access the command line arguments, which are then defined by "sys.argv"

Searching for modules

? When a module is imported, the python interpreter first looks for a built-in module

? If not found, it will then search for "moduleName.py" in the locations defined by the variable "sys.path", which initially defines these locations:

? the directory containing the script currently running ? the locations defined in "PYTHONPATH" ? the default installation directory

? Python programs can modify "sys.path" after initialization

Pre-compiled Python files

? Python caches the compiled versions of each module, allows much faster execution of programs

? Stores in "__pycache__" directory, under the filename "moduleName.version.pyc"

? This ensures that the compiled versions are used with the correct version/release of Python being used

? Automatically recompiles any source file that is modified ? Python always recompiles modules ran from the

command line, however

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download