160 likes | 344 Views
Python’s Modules. b y E. Esin GOKGOZ. What is a module?. a file containing Python definitions and statements definitions from a module can be imported into other modules or into the main module The file name is the module name with the suffix .py appended.
E N D
Python’s Modules by E. Esin GOKGOZ
What is a module? • a file containing Python definitions and statements • definitions from a module can be imported into other modules or into the main module • The file name is the module name with the suffix .py appended
Module’s Cont’d…# Fibonacci numbers module deffib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b, a, b = b, a+bdeffib2(n): # return Fibonacci series up to n result = [] a, b = 0, 1 while b < n:result.append(b) a, b = b, a+breturn result
Module’s cont’d…>>>importfibo>>> fibo.fib(1000) 1 1 2 3 5 8 13 21 34 55 89 144 233 >>> fibo.fib2(100) [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] >>> fibo.__name__ 'fibo' >>> fib = fibo.fib >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Module’s Cont’d… • Modules can import other modules >>> fromfiboimport fib, fib2 >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 >>>fromfiboimport * >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377
The Module Search Path • When a module named spam is imported, the interpreter searches for a file named spam.py in the current directory, and then in the list of directories specified by the environment variable PYTHONPATH • When PYTHONPATH is not set, or when the file is not found there, the search continues in an installation-dependent default path; on Unix, this is usually .:/usr/local/lib/python
“Compiled” Python files • if a file called spam.pyc exists in the directory where spam.py is found, this is assumed to contain an already-“byte-compiled” version of the module spam.
“Compiled” Python files cont’d • When the Python interpreter is invoked with the -O flag, optimized code is generated and stored in .pyo files. • A program doesn’t run any faster when it is read from a .pyc or .pyo file than when it is read from a .py file; the only thing that’s faster about .pyc or .pyo files is the speed with which they are loaded • The module compileall can create .pyc files for all modules in a directory.
The dir() Function • Without arguments, dir() lists the names you have defined currently: >>> a = [1, 2, 3, 4, 5] >>> importfibo >>> fib = fibo.fib >>>dir() ['__builtins__', '__doc__', '__file__', '__name__', 'a', 'fib', 'fibo', 'sys']
The dir() Function cont’d… • standard module__builtin__: >>> import __builtin__ >>> dir(__builtin__) ['ArithmeticError', 'AssertionError', 'AttributeError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'IOError', 'ImportError', 'IndentationError', 'IndexError',…]
Packages • Packages are a way of structuring Python’s module namespace by using “dotted module names”. e.g. the module name A.B designates a submodule named B in a package named A
Sound / Top-level package __init__.py Initialize the sound package formats/ Subpackage for file format conversions __init__.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py ... effects/ Subpackage for sound effects __init__.py echo.py surround.py reverse.py ... filters/ Subpackage for filters __init__.py equalizer.py vocoder.py ...
Packages cont’d… • importsound.effects.echo sound.effects.echo.echofilter(input, output, delay=0.7, atten=4) • fromsound.effects import echo echo.echofilter(input, output, delay=0.7, atten=4) • fromsound.effects.echoimportechofilter
Importing * From a Package • from sound.effects import * !!! must have __all__ __all__ = ["echo", "surround", "reverse"]
Q U E S T I O N S ? ? ? ? ? ? ? ? ? ?