Pythons Modules by E Esin GOKGOZ What is
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 def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b, a, b = b, a+b def fib 2(n): # return Fibonacci series up to n result = [] a, b = 0, 1 while b < n: result. append(b) a, b = b, a+b return result
Module’s cont’d… >>> import fibo >>> fibo. fib(1000) 1 1 2 3 5 8 13 21 34 55 89 144 233 >>> fibo. fib 2(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 >>> from fibo import fib, fib 2 >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 >>> from fibo import * >>> 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 installationdependent 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] >>> import fibo >>> fib = fibo. fib >>> dir() ['__builtins__', '__doc__', '__file__', '__name__', 'a', 'fibo', 'sys']
The dir() Function cont’d… ü standard module __builtin__: >>> import __builtin__ >>> dir(__builtin__) ['Arithmetic. Error', 'Assertion. Error', 'Attribute. Error', 'Deprecation. Warning', 'EOFError', 'Ellipsis', 'Environment. Error', 'Exception', 'False', 'Floating. Point. Error', 'Future. Warning', 'IOError', 'Import. Error', 'Indentation. Error', 'Index. Error', …]
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 __init__. py / Top-level package 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… ü import sound. effects. echofilter(input, output, delay=0. 7, atten=4) ü from sound. effects import echofilter(input, output, delay=0. 7, atten=4) ü from sound. effects. echo import echofilter
Importing * From a Package ü from sound. effects import * !!! must have __all__ = ["echo", "surround", "reverse"]
Q U E S T I O N S ? ? ? ?
- Slides: 15