开始Python -- 模块(Modules) - Dynamic Script Lang...
来源:百度文库 编辑:神马文学网 时间:2024/04/28 01:32:28
开始Python -- 模块(Modules) 收藏
1、模块
(1)Python程序可以作为模块导入
l 将Python程序保存为.py文件到指定目录,例如:c:/python/hello.py
# hello.py
print "Hello, world!"
l 告诉Python模块的位置,一种方法是将.py文件的保存目录追加到Python的系统路径中:
>>> import sys
>>> sys.path.append('c:/python')
l 这样就可以导入程序了(模块名即.py文件名):
>>> import hello
Hello, world!
l 如果修改了程序,再次导入,程序什么也没有做:
>>> import hello
>>>
l 这是因为模块主要用来定义变量、函数和类,只导入一次。
l 要重新导入的方法是使用内建的reload()函数:
>>> hello = reload(hello)
Hello, world!
(2)模块用来定义变量、函数和类
l 模块导入后,模块中定义的变量、函数和类可以作为模块的属性使用
# hello2.py
def hello():
print "Hello, world!"
>>> import hello2
>>> hello2.hello()
Hello, world!
(3)使你的模块有效
l 通常不会像前面的方法一样编辑sys.path,而是将模块目录放到系统默认的路径中:
>>> import sys, pprint
>>> pprint.pprint(sys.path)
['',
'C:\\WINDOWS\\system32\\python24.zip',
'D:\\workshop\\Python24\\DLLs',
'D:\\workshop\\Python24\\lib',
'D:\\workshop\\Python24\\lib\\plat-win',
'D:\\workshop\\Python24\\lib\\lib-tk',
'D:\\workshop\\Python24\\Lib\\site-packages\\pythonwin',
'D:\\workshop\\Python24',
'D:\\workshop\\Python24\\lib\\site-packages',
'D:\\workshop\\Python24\\lib\\site-packages\\win32',
'D:\\workshop\\Python24\\lib\\site-packages\\win32\\lib']
l site-packages目录通常是个不错的选择。
l 另外一种方法是将模块目录放到操作系统环境变量PYTHONPATH中。
l UNIX的例子:
export PYTHONPATH=$PYTHONPATH:~/python
l Windows的例子:
set PYTHONPATH=%PYTHONPATH%;C:\python
2、包(package)
(1)包的结构:
l 模块保存到.py文件中;
l 包是目录,但其中必须包含__init__.py的模块;
l 模块文件保存在包目录中;
l 下面是个例子:
~/python/ 假设目录加到PYTHONPATH中
~/python/drawing/ 包目录(drawing包)
~/python/drawing/__init__.py 包目录下的代码(drawing模块)
~/python/drawing/colors.py colors模块
~/python/drawing/shapes.py shapes模块
l 下面的导入都是合法的:
import drawing # 导入drawing包,只有__init__模块有效
import drawing.colors # 导入colors模块,使用全名drawing.colors访问
from drawing import shapes # 导入shapes模块,使用短名shapes访问
3、揭示模块内容
(1)使用dir()函数
l 使用dir()函数揭示模块内容:
>>> import copy
>>> [name for name in dir(copy) if name[0] != '_']
['Error', 'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'inspect', 'name', 't']
(2)__all__变量
l __all__变量用来定义模块的公共接口
>>> copy.__all__
['Error', 'copy', 'deepcopy']
l 当用下面的导入语句时,__all__变量设定的函数(变量或类)可以直接引用:
from copy import *
l 而PyStringMap必须显式导入,才可以直接引用:
from copy import PyStringMap
l 在编写模块时,设置__all__变量通常是个有用的技巧
(3)获得帮助信息
l 使用help()函数获得帮助信息
>>> help(copy.copy)
Help on function copy in module copy:
copy(x)
Shallow copy operation on arbitrary Python objects.
See the module's __doc__ string for more info.
l 文档字符串是写在函数(变量或类)的开始部分,用来文档化的,保存在__doc__属性中:
>>> print copy.copy.__doc__
Shallow copy operation on arbitrary Python objects.
See the module's __doc__ string for more info.
(4)查看源代码
l 使用模块的__file__属性,可以获得模块源代码所在的位置
>>> print copy.__file__
D:\workshop\Python24\lib\copy.pyc
l .pyc文件是编译过的Python文件,在第一次导入模块时创建(和.py文件同一个目录);在后续导入时使用该文件,以提高Python的处理效率
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ruby_beginner/archive/2009/03/02/3949901.aspx
1、模块
(1)Python程序可以作为模块导入
l 将Python程序保存为.py文件到指定目录,例如:c:/python/hello.py
# hello.py
print "Hello, world!"
l 告诉Python模块的位置,一种方法是将.py文件的保存目录追加到Python的系统路径中:
>>> import sys
>>> sys.path.append('c:/python')
l 这样就可以导入程序了(模块名即.py文件名):
>>> import hello
Hello, world!
l 如果修改了程序,再次导入,程序什么也没有做:
>>> import hello
>>>
l 这是因为模块主要用来定义变量、函数和类,只导入一次。
l 要重新导入的方法是使用内建的reload()函数:
>>> hello = reload(hello)
Hello, world!
(2)模块用来定义变量、函数和类
l 模块导入后,模块中定义的变量、函数和类可以作为模块的属性使用
# hello2.py
def hello():
print "Hello, world!"
>>> import hello2
>>> hello2.hello()
Hello, world!
(3)使你的模块有效
l 通常不会像前面的方法一样编辑sys.path,而是将模块目录放到系统默认的路径中:
>>> import sys, pprint
>>> pprint.pprint(sys.path)
['',
'C:\\WINDOWS\\system32\\python24.zip',
'D:\\workshop\\Python24\\DLLs',
'D:\\workshop\\Python24\\lib',
'D:\\workshop\\Python24\\lib\\plat-win',
'D:\\workshop\\Python24\\lib\\lib-tk',
'D:\\workshop\\Python24\\Lib\\site-packages\\pythonwin',
'D:\\workshop\\Python24',
'D:\\workshop\\Python24\\lib\\site-packages',
'D:\\workshop\\Python24\\lib\\site-packages\\win32',
'D:\\workshop\\Python24\\lib\\site-packages\\win32\\lib']
l site-packages目录通常是个不错的选择。
l 另外一种方法是将模块目录放到操作系统环境变量PYTHONPATH中。
l UNIX的例子:
export PYTHONPATH=$PYTHONPATH:~/python
l Windows的例子:
set PYTHONPATH=%PYTHONPATH%;C:\python
2、包(package)
(1)包的结构:
l 模块保存到.py文件中;
l 包是目录,但其中必须包含__init__.py的模块;
l 模块文件保存在包目录中;
l 下面是个例子:
~/python/ 假设目录加到PYTHONPATH中
~/python/drawing/ 包目录(drawing包)
~/python/drawing/__init__.py 包目录下的代码(drawing模块)
~/python/drawing/colors.py colors模块
~/python/drawing/shapes.py shapes模块
l 下面的导入都是合法的:
import drawing # 导入drawing包,只有__init__模块有效
import drawing.colors # 导入colors模块,使用全名drawing.colors访问
from drawing import shapes # 导入shapes模块,使用短名shapes访问
3、揭示模块内容
(1)使用dir()函数
l 使用dir()函数揭示模块内容:
>>> import copy
>>> [name for name in dir(copy) if name[0] != '_']
['Error', 'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'inspect', 'name', 't']
(2)__all__变量
l __all__变量用来定义模块的公共接口
>>> copy.__all__
['Error', 'copy', 'deepcopy']
l 当用下面的导入语句时,__all__变量设定的函数(变量或类)可以直接引用:
from copy import *
l 而PyStringMap必须显式导入,才可以直接引用:
from copy import PyStringMap
l 在编写模块时,设置__all__变量通常是个有用的技巧
(3)获得帮助信息
l 使用help()函数获得帮助信息
>>> help(copy.copy)
Help on function copy in module copy:
copy(x)
Shallow copy operation on arbitrary Python objects.
See the module's __doc__ string for more info.
l 文档字符串是写在函数(变量或类)的开始部分,用来文档化的,保存在__doc__属性中:
>>> print copy.copy.__doc__
Shallow copy operation on arbitrary Python objects.
See the module's __doc__ string for more info.
(4)查看源代码
l 使用模块的__file__属性,可以获得模块源代码所在的位置
>>> print copy.__file__
D:\workshop\Python24\lib\copy.pyc
l .pyc文件是编译过的Python文件,在第一次导入模块时创建(和.py文件同一个目录);在后续导入时使用该文件,以提高Python的处理效率
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ruby_beginner/archive/2009/03/02/3949901.aspx
开始Python -- 模块(Modules) - Dynamic Script Lang...
Python 数据库接口模块
狼(图文)lang
lang
[Python模块]PAMIE -- Python Automated Module For Internet Explorer - limodou的学习记录 - DonewsBlog
Python: 50个能够满足所有需要的模块 - Python编程 - JavaEye新闻
Google Modules
springmodules: Spring Modules - Modules, add-...
Python类编写(原创)
INFORMIX IDS11.5 动态存储过程(DYNAMIC SPL) - INFORM...
Dynamic Programming
Dynamic Programming
Dynamic Drive DHTML(dynamic html) & ...
Python 通过pyodbc模块连接Sybase数据库操作要点 — Windows Li...
链接模块(滚动模块)
cscl script
Shell Script
狼lang
DLL(Dynamic Link Libraries)
HTTP模块(一)
Nginxhttp模块(三)
精品模块(三)
精品模块(八)
工具书(首页模块)