Subsections

 
6. Modules

If you quit from the Python interpreter and enter it again, the definitions you have made (functions and variables) are lost. Therefore, if you want to write a somewhat longer program, you are better off using a text editor to prepare the input for the interpreter and running it with that file as input instead. This is known as creating a script. As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you've written in several programs without copying its definition into each program.

To support this, Python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or into the main module (the collection of variables that you have access to in a script executed at the top level and in calculator mode).

A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. Within a module, the module's name (as a string) is available as the value of the global variable __name__. For instance, use your favorite text editor to create a file called fibo.py in the current directory with the following contents:

# 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 fib2(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

Now enter the Python interpreter and import this module with the following command:

>>> import fibo

This does not enter the names of the functions defined in fibo directly in the current symbol table; it only enters the module name fibo there. Using the module name you can access the functions:

>>> fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

If you intend to use a function often you can assign it to a local name:

>>> fib = fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

 
6.1 More on Modules

A module can contain executable statements as well as function definitions. These statements are intended to initialize the module. They are executed only the first time the module is imported somewhere.6.1

Each module has its own private symbol table, which is used as the global symbol table by all functions defined in the module. Thus, the author of a module can use global variables in the module without worrying about accidental clashes with a user's global variables. On the other hand, if you know what you are doing you can touch a module's global variables with the same notation used to refer to its functions, modname.itemname.

Modules can import other modules. It is customary but not required to place all import statements at the beginning of a module (or script, for that matter). The imported module names are placed in the importing module's global symbol table.

There is a variant of the import statement that imports names from a module directly into the importing module's symbol table. For example:

>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

This does not introduce the module name from which the imports are taken in the local symbol table (so in the example, fibo is not defined).

There is even a variant to import all names that a module defines:

>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

This imports all names except those beginning with an underscore (_).

 
6.1.1 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. This has the same syntax as the shell variable PATH, i.e., a list of directory names. 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.

Actually, modules are searched in the list of directories given by the variable sys.path which is initialized from the directory containing the input script (or the current directory), PYTHONPATH and the installation-dependent default. This allows Python programs that know what they're doing to modify or replace the module search path. See the section on Standard Modules later.

6.1.2 ``Compiled'' Python files

As an important speed-up of the start-up time for short programs that use a lot of standard modules, 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. The modification time of the version of spam.py used to create spam.pyc is recorded in spam.pyc, and the .pyc file is ignored if these don't match.

Normally, you don't need to do anything to create the spam.pyc file. Whenever spam.py is successfully compiled, an attempt is made to write the compiled version to spam.pyc. It is not an error if this attempt fails; if for any reason the file is not written completely, the resulting spam.pyc file will be recognized as invalid and thus ignored later. The contents of the spam.pyc file are platform independent, so a Python module directory can be shared by machines of different architectures.

Some tips for experts:

 
6.2 Standard Modules

Python comes with a library of standard modules, described in a separate document, the Python Library Reference (``Library Reference'' hereafter). Some modules are built into the interpreter; these provide access to operations that are not part of the core of the language but are nevertheless built in, either for efficiency or to provide access to operating system primitives such as system calls. The set of such modules is a configuration option; e.g., the amoeba module is only provided on systems that somehow support Amoeba primitives. One particular module deserves some attention: sys , which is built into every Python interpreter. The variables sys.ps1 and sys.ps2 define the strings used as primary and secondary prompts:

>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>> sys.ps1 = 'C> '
C> print 'Yuck!'
Yuck!
C>

These two variables are only defined if the interpreter is in interactive mode.

The variable sys.path is a list of strings that determine the interpreter's search path for modules. It is initialized to a default path taken from the environment variable PYTHONPATH, or from a built-in default if PYTHONPATH is not set. You can modify it using standard list operations, e.g.:

>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')

 
6.3 The dir() Function

The built-in function dir() is used to find out which names a module defines. It returns a sorted list of strings:

>>> import fibo, sys
>>> dir(fibo)
['__name__', 'fib', 'fib2']
>>> dir(sys)
['__name__', 'argv', 'builtin_module_names', 'copyright', 'exit',
'maxint', 'modules', 'path', 'ps1', 'ps2', 'setprofile', 'settrace',
'stderr', 'stdin', 'stdout', 'version']

Without arguments, dir() lists the names you have defined currently:

>>> a = [1, 2, 3, 4, 5]
>>> import fibo, sys
>>> fib = fibo.fib
>>> dir()
['__name__', 'a', 'fib', 'fibo', 'sys']

Note that it lists all types of names: variables, modules, functions, etc.

dir() does not list the names of built-in functions and variables. If you want a list of those, they are defined in the standard module __builtin__ :

>>> import __builtin__
>>> dir(__builtin__)
['AccessError', 'AttributeError', 'ConflictError', 'EOFError', 'IOError',
'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt',
'MemoryError', 'NameError', 'None', 'OverflowError', 'RuntimeError',
'SyntaxError', 'SystemError', 'SystemExit', 'TypeError', 'ValueError',
'ZeroDivisionError', '__name__', 'abs', 'apply', 'chr', 'cmp', 'coerce',
'compile', 'dir', 'divmod', 'eval', 'execfile', 'filter', 'float',
'getattr', 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'len', 'long',
'map', 'max', 'min', 'oct', 'open', 'ord', 'pow', 'range', 'raw_input',
'reduce', 'reload', 'repr', 'round', 'setattr', 'str', 'type', 'xrange']

 
6.4 Packages

Packages are a way of structuring Python's module namespace by using ``dotted module names''. For example, the module name A.B designates a submodule named "B" in a package named "A". Just like the use of modules saves the authors of different modules from having to worry about each other's global variable names, the use of dotted module names saves the authors of multi-module packages like NumPy or the Python Imaging Library from having to worry about each other's module names.

Suppose you want to design a collection of modules (a ``package'') for the uniform handling of sound files and sound data. There are many different sound file formats (usually recognized by their extension, e.g. .wav, .aiff, .au), so you may need to create and maintain a growing collection of modules for the conversion between the various file formats. There are also many different operations you might want to perform on sound data (e.g. mixing, adding echo, applying an equalizer function, creating an artificial stereo effect), so in addition you will be writing a never-ending stream of modules to perform these operations. Here's a possible structure for your package (expressed in terms of a hierarchical filesystem):

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 auwrite.py...
 Effects/ Subpackage for sound effects __init__.py echo.py surround.py reverse.py...
 Filters/ Subpackage for filters __init__.py equalizer.py vocoder.py karaoke.py...

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as "string", from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.pyCan just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.

Users of the package can import individual modules from the package, for example:

import Sound.Effects.echo

This loads the submodule Sound.Effects.echo. It must be referenced with its full name, e.g.

Sound.Effects.echo.echofilter(input, output, delay=0.7, atten=4)

An alternative way of importing the submodule is:

from Sound.Effects import echo

This also loads the submodule echo, and makes it available without its package prefix, so it can be used as follows:

echo.echofilter(input, output, delay=0.7, atten=4)

Yet another variation is to import the desired function or variable directly:

from Sound.Effects.echo import echofilter

Again, this loads the submodule echo, but this makes its function echofilter() directly available:

echofilter(input, output, delay=0.7, atten=4)

Note that when using from package import item, the item can be either a submodule (or subpackage) of the package, or some other name defined in the package, like a function, class or variable. The import statement first tests whether the item is defined in the package; if not, it assumes it is a module and attempts to load it. If it fails to find it, an ImportError exception is raised.

Contrarily, when using syntax like import item.subitem.subsubitem, each item except for the last must be a package; the last item can be a module or a package but can't be a class or function or variable defined in the previous item.

 
6.4.1 Importing * From a Package

Now what happens when the user writes from Sound.Effects import *? Ideally, one would hope that this somehow goes out to the filesystem, finds which submodules are present in the package, and imports them all. Unfortunately, this operation does not work very well on Mac and Windows platforms, where the filesystem does not always have accurate information about the case of a filename! On these platforms, there is no guaranteed way to know whether a file ECHO.PY should be imported as a module echo, Echo or ECHO. (For example, Windows 95 has the annoying practice of showing all file names with a capitalized first letter.) The DOS 8+3 filename restriction adds another interesting problem for long module names.

The only solution is for the package author to provide an explicit index of the package. The import statement uses the following convention: if a package's __init__.pyCode defines a list named __all__, it is taken to be the list of module names that should be imported when from package import * is encountered. It is up to the package author to keep this list up-to-date when a new version of the package is released. Package authors may also decide not to support it, if they don't see a use for importing * from their package. For example, the file Sounds/Effects/__init__.pyCould contain the following code:

__all__ = ["echo", "surround", "reverse"]

This would mean that from Sound.Effects import * would import the three named submodules of the Sound package.

If __all__ is not defined, the statement from Sound.Effects import * does not import all submodules from the package Sound.Effects into the current namespace; it only ensures that the package Sound.Effects has been imported (possibly running its initialization code, __init__.py) and then imports whatever names are defined in the package. This includes any names defined (and submodules explicitly loaded) by __init__.py. It also includes any submodules of the package that were explicitly loaded by previous import statements, e.g.

import Sound.Effects.echo
import Sound.Effects.surround
from Sound.Effects import *

In this example, the echo and surround modules are imported in the current namespace because they are defined in the Sound.Effects package when the from...import statement is executed. (This also works when __all__ is defined.)

Note that in general the practicing of importing * from a module or package is frowned upon, since it often causes poorly readable code. However, it is okay to use it to save typing in interactive sessions, and certain modules are designed to export only names that follow certain patterns.

Remember, there is nothing wrong with using from Package import specific_submodule! In fact, this is the recommended notation unless the importing module needs to use submodules with the same name from different packages.

6.4.2 Intra-package References

The submodules often need to refer to each other. For example, the surround module might use the echo module. In fact, such references are so common that the import statement first looks in the containing package before looking in the standard module search path. Thus, the surround module can simply use import echo or from echo import echofilter. If the imported module is not found in the current package (the package of which the current module is a submodule), the import statement looks for a top-level module with the given name.

When packages are structured into subpackages (as with the Sound package in the example), there's no shortcut to refer to submodules of sibling packages - the full name of the subpackage must be used. For example, if the module Sound.Filters.vocoder needs to use the echo module in the Sound.Effects package, it can use from Sound.Effects import echo.



Footnotes

... somewhere.6.1
In fact function definitions are also `statements' that are `executed'; the execution enters the function name in the module's global symbol table.
See About this document... for information on suggesting changes.

Kevin Carr

Natural Skin Care European Soaps
Kevin Carr
City of Stanton Sales Tax
Internetusers


You can also get Organic Skin Care products from Bliss Bath Body and you must check out their Natural Body Lotions and bath soaps

Now if you are looking for the best deals on surf clothing from Quiksilver and Roxy then you have to check these amazing deals here:

Hey, check out this Organic Skin Care European Soaps along with Natural Lavender Body Lotion and shea butter

And you must check out this website

 

French Lavender Soaps Organic And Natural Body Care Shea Body Butters

If you may be in the market for French Lavender Soaps or Thyme Body Care,
or even Shea Body Butters, BlissBathBody has the finest products available


You can also get Organic Skin Care products from Bliss Bath Body and you must check out their Natural Body Lotions and bath soaps

Now if you are looking for the best deals on surf clothing from Quiksilver and Roxy then you have to check these amazing deals here:

Hey, check out this Organic Skin Care European Soaps along with Natural Lavender Body Lotion and shea butter

This is the website that has all the latest for surf, skate and snow. You can also see it here:. You'll be glad you saw the surf apparel.

Take a moment to visit 1cecilia448 or see them on twitter at 1cecilia448 or view them on facebook at 1cecilia448.


pest Termite Inspection kfi kfwb knx
I saw the best iphone cases on this website best Apple iPhone cases so get on before they are gone.

I bought the ipod touch 4g cases at this page .


I saw the best iphone cases on this website best Apple iPhone cases so get on before they are gone.

I bought the ipod touch 4g cases at this page .



This is the website that has all the latest for surf, skate and snow. You can also see it here:. You'll be glad you saw the surf apparel.

Take a moment to visit 1cecilia448 or see them on twitter at 1cecilia448 or view them on facebook at 1cecilia448.

Orange County Mobile Home Pest Control



The case offers 2300 mAh of power, which is a lot, and it fits into a svelte package. Also like the hawaiian sandal , the Meridian leaves the headphone jack very deeply recessed—but while the Mophie cases ship with a small headphone adapter, the Meridian doesn’t. Like the Freedom 2000, the Power Bank requires that you charge it with your own Lightning cable. So, when you want to use the 1cecilia28 , you need to connect it to your iPhone with your overly long cable, which looks awkward. I don't get it.

The two single-piece hard-shell cases look nice, and the setup with the hawaian Sandals snapped onto it looks sharp, too. But with this case option, you’re really toting around a stand-alone charging unit that happens to fit on the back of your iPhone. Like the Mojo Refuel, it consists of a main battery portion that plugs into your charging case iphone 5 , and a thin frame that snaps down around the front. The backing plastic on the case feels a little cheap in my hand, but I like the look regardless.

The two-layer armor kit involves a solid piece that snaps onto your 1cecilia131 , with a hard rubbery layer that wraps around it, offering impact protection coupled with the case’s battery-boosting ability. The case uses rubbery flaps that protect the headphone jack, the Ring/Silent switch, and the Micro-USB charging port, along with overlays that protect the buttons.
The Grip Power is one of the few hawaiian made sandals I tested that intentionally protrudes beyond the screen—a design that affords a bit of extra protection if you drop the phone and it lands screen-side down. The Micro-USB port on the Grip Power is tucked away on the side, which works fine. You’ll find button overlays for the volume and Sleep/Wake controls, and a tight cutout for the Ring/Silent switch. Because it covers the headphone jack, as the Mophies do, the Grip Power ships with a small headphone extension cord. It uses a 2300-mAh battery, and has a two-piece cap-and-base design that functions a lot like the Mophies do. The DX ships with a small headphone extension cord, too. The not your daughter's jeans outlet makes where the cap and base fit together—it’s too visible. Still, the DX packs a lot of battery power, and it’s easy to put on and take off, so it isn’t a bad option.

I’ve looked at many battery cases or the iPhone5 external battery All of them plug into your iPhone’s Lightning connector, and all of them work basically the same way: You charge the cases up by plugging them into a wall adapter or USB port, and you activate them when you want to start charging up your iPhone’s built-in battery. The best hawaiian made sandals should be easy to toggle on and off, simple to charge, and capable of providing a good indication of how much battery life remains in the case. Oh, and of course, they should provide a lot of extra juice.

On a more subjective scale, I prefer button overlays to cutouts. With the latter design, cases leave holes around the volume buttons, the Sleep/Wake button, and usually the Ring/Silent switch. I find the Sandals from hawaii iPhone’s buttons harder to press through such tiny gaps; I prefer a “surface-level” hardware button that doesn’t require squeezing the tip of my finger into a small space.

Forget about dropped calls and being unable to read your emails because of a dying battery. The nimble battery pack powerful lithium polymer battery cells allow for a thinner and lighter design and Original Samsung Lithium Ion cells, which means our batteries are high quality, unlike many other companies, using generic lithium ion cells. Patented slide-lock mechanism and unique unibody construction allow you to easily install and remove your Quirk-Silva Recall without scratches — unlike typical slider style cases that can damage your phone and fall apart after prolonged use.

Apple claims that the iPhone 6 has slighty better battery life than the ... does its battery last long enough to obviate the need for a 1cecilia60 but it is best to have one anyway.

Termites eat wood, and can consequently cause great structural damage to your home if left unchecked. A typical homeowner's insurance policy does not cover destruction caused by termites, even though they cause over 1 billion dollars in damage to homes throughout the United States each year. Our inspection and treatment program can help you understand the threat of termites, and take the necessary steps to protect your home.

garden grove pest control

westminster pest control

buena park pest control

huntington beach pest control

Orange County Mobile Home Pest Control



Kevin Carr |

HB Sport Surf Clothing

|

Huntington Beach Surf Sport Shop

|


Use jojoba as a skin moisturizer to relieve dry skin. Kevin Carr |


Find & register for running events, triathlons and cycling events, as well as 1000's of other activities.

Orange County Mobile Home Pest Control

Company termite rat pest control los angeles KFI AM 640

pest control stanton

pest control orange county

southern california exterminators los angeles

southern california exterminators stanton

pest control orange county

pest control stanton

Your source for race results for thousands of running events

Fox Head shorts for sale here comfort boot order one now.Today, Fox Racing remains a family owned and operated business, with all four of Geoff and Josie Fox's children working full-time at the company. Ever-growing, Fox Racing is moving bravely into the future with the help and enthusiasm of its 300. Fox Head shirts is at Look at iPhone Cases and this website iPhone Cases and this one too iPhone Case on the website. Buy plumber kfi humu on the web store mark daniels anaheim and AB5 Law. and order a few.

Fox Head t-shirt is on sales at hawaiian shoes on the Internet. While Fox Racing offers its complete line of motocross pants, jerseys, gloves, boots, and helmets through independent motorcycle accessory dealers worldwide, the company also offers a full line of sportswear, including shorts, T-shirts, fleece, hats, jeans, sweaters, sweatshirts and jackets to the public through finer motocross, bike, and sportswear retailers worldwide. Fox Head hydro shorts at this website rideshops and buy a few. During the last three decades, Fox Racing has become an international leader in the sportswear apparel industry with its famous Fox Head logo seen worldwide. In doing so, Fox Racing has held steadfast to Geoff Fox's original goal of making the best motocross products money can buy.


ternational leader in the sportswear apparel industry with its famous Fox Head logo seen worldwide. In doing so, Fox Racing has held steadfast to Geoff Fox's original goal of making the best motocross products money can buy.