1 A first script
1) script1.py
- imports a Python module (libraries of additional tools) to fetch the name of the platform
- calls three print function to display the script’s results
- uses a variable named x, created when it’s assigned, to hold onto a string object
1 # A first Python script 2 import sys # Load a library module 3 print(sys.platform) 4 print(2 ** 10) # Raise 2 to a power 5 x = 'Spam!' 6 print(x * 8) # String repetition
2) Run
$ python script1.py linux2 1024 Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
2 Module Imports and Reloads
1) Module
Modules are simply text files containing Python statements. Python executes all the code in a module file from top to bottom each time we run the file. Each file is a module, and modules import other modules to use the names they define. Modules are processed with two statements and one important function:
import - Lets a client (importer) fetch a module as a whole
from - Allows clients to fetch particular names from a module
imp.reload - Provides a way to reload a module’s code without stopping Python
2) Import
Every file of Python source code whose name ends in a .py extension is a module. Other files can access the items a module defines by importing that module; import operations essentially load another file and grant access to that file’s contents.
$ python Python 2.7.3 (default, Dec 18 2014, 19:10:20) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import script1 linux2 1024 Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
This works, but only once per session (really, process) by default. After the first import, later imports do nothing, even if you change and save the module’s source file again in another window.
This is by design; imports are too expensive an operation to repeat more than once per file, per program run. Imports must find files, compile them to byte code, and run the code.
3) Reload
If want to force Python to run the file again in the same session without stopping and restarting the session, we need to instead call the reload function available in the imp standard library module (this function is also a simple built-in in Python 2.6, but not in 3.0).
>>> from imp import reload >>> reload(script1) linux2 1024 Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam! <module 'script1' from 'script1.pyc'>