Modules
What is Module?
A
module allows you to logically organize your Python code. Grouping related code
into a module makes the code easier to understand and use. A module is a Python
object with arbitrarily named attributes that you can bind and reference. Simply,
a module is a file consisting of Python code. A module can define functions,
classes, and variables. A module can also include runnable code.
Example:
The
Python code for a module named aname normally resides in a file named aname.py.
Here's an example of a simple module, support.py
def print_func( par ):
print "Hello :
", par
return
Code Example 1 -
moduletest.py
### EXAMPLE PYTHON MODULE
# Define some variables:
numberone = 1
ageofqueen = 78
# define some functions
def printhello():
print "hello"
def timesfour(input):
print input * 4
# define a class
class Piano:
def __init__(self):
self.type = raw_input("What
type of piano? ")
self.height = raw_input("What
height (in feet)? ")
self.price = raw_input("How
much did it cost? ")
self.age = raw_input("How
old is it (in years)? ")
def printdetails(self):
print "This
piano is a/an " + self.height + " foot",
print self.type, "piano, " + self.age, "years old and costing\
" + self.price + " dollars."
As
you see, a module looks pretty much like your normal Python program. So what do we do with a
module? We import bits of it (or all of it) into other programs. To import all the variables, functions and
classes from moduletest.py into another program you are writing, we use the
import operator. For example, to import moduletest.py into your main program,
you would have this:
Code Example 2 - mainprogram.py
### mainprogam.py
### IMPORTS ANOTHER MODULE
import moduletest
This
assumes that the module is in the same directory as mainprogram.py, or is a
default module that comes with python. You leave out the '.py' at the end of
the file - it is ignored. You normally put all import statements at the
beginning of the python file, but technically they can be anywhere. In order to
use the items in the module in your main program, you use the following:
Code Example 3 - mainprogram.py
continued
### USING AN IMPORTED MODULE
# Use the form modulename.itemname
# Examples:
print moduletest.ageofqueen
cfcpiano = moduletest.Piano()
cfcpiano.printdetails()
As
you see, the modules that you import act very much like the classes we looked
at last lesson - anything inside them must be preceeded with modulename. for it
to work
.
More
Module Thingamajigs (in lack of a better title)
Wish you could get rid of the
modulename. part that you have to put before every item you use from a module?
No? Never? Well, I'll teach it you anyway.
One way to avoid this hassle is to import only the wanted objects from
the module. To do this, you use the from operator. You use it in the form of
from modulename import itemname. Here is an example:
Code Example 4 - importing individual objects
### IMPORT ITEMS DIRECTLY INTO YOUR PROGRAM
# import them
from moduletest import ageofqueen
from moduletest import printhello
# now try using them
print ageofqueen
printhello()
What
is the point of this? Well, maybe you could use it to make your code a little
more readable. If we get into heaps of modules inside modules, it could also
remove that extra layer of crypticness.
If you wanted to, you could
import everything from a module is this way by using from modulename import *.
Of course, this can be troublesome if there are objects in your program with
the same name as some items in the module. With large modules, this can easily
happen, and can cause many a headache. A better way to do this would be to
import a module in the normal way (without the from operator) and then assign
items to a local name:
Code Example 5 - mainprogram.py
continued
### ASSIGNING ITEMS TO A LOCAL NAME
# Assigning to a local name
timesfour = moduletest.timesfour
# Using the local name
print timesfour(565)
No comments:
Post a Comment