同其它面向对象语言一样,python语言也也有许多方法集合的库文件,而且python中的使用更灵活。Python模块(Module),是一个 Python 文件,以 .py结尾,包含了 Python 对象定义和Python语句。
模块可以由2个语句和一个重要的内置函数进行处理:
(1)import:使客户端(导入者)以一个整体获取一个模块。
(2)from:容许客户端从一个模块文件中获取特定的变量名。
(3)reload():在不中止Python程序的情况下,提供了一个重新载入模块文件代码的方法。
一.import
(2) Python搜索模块的路径:
这四个组合起来就变成了sys.path了,
(3)如果我们要添加自己的搜索目录,有四种方法:
import sys
sys.path.append('c:\\mypythonlib')
下面命令显示了site-packages 目录:
from distutils.sysconfig import get_python_lib
print get_python_lib()
3. 使用pth文件,在site-packages 文件中创建.pth文件,将模块的路径写进去,一行一个路径,以下是一个示例,pth文件也可以使用注释:
E:\Pythonworkplace
E:\Pythonworkplace\mysite
4. 第二种方法是设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。
二.from
1.from会把变量名赋值到另一个作用域,所以它就可以让我们直接在脚本中使用复制后的变量名,而不是通过模块
2. from module import name, age #复制多个变量名时要用逗号隔开
>>> name, age
或者
>>> from module import name as myname, age as myage
三. from * 会取得模块顶层所有赋了值的变量名的拷贝
从技术角度来说,from和 import语句都会使用相同的导入操作,from *形式只是多加了个步骤,把模块所有变量名复制到了进 行导入的作用域内。
从根本上来说,这就是把一个模块的命名空间融入另一个模块之中,实际效果就是让我们少输入一些。
语法结构: from module import *
四.包(多个模块的集合)
除模块名以外,导入也可以指定目录路径,Python代码的目录就是称为包。因此这类导入就称为包导入。
五.reload函数:reload可以修改模块的一些部分,而无需停止整个部分,利用reload可以立即看到组件的修改效果
#python3
from imp import reload
#python 2
import sys
reload(sys)
4.reload重载,使得程序能够提供高度动态的接口,用户可以在系统运作时通过编写python程序定制产品,而不用重新编译整个产品。使Python代码增加了一种动态本质。
六. Python提供了__future__模块,把下一个新版本的特性导入到当前版本
七.__name__ : 每个模块都有个名为__name__的内置属性如果文件是以顶层程序文件执行,在启动时,__name__就会被设置为字符串“__main__”
如果文件被导入到主程序,__name__就会改设成客户端所了解模块名。 结果就是模块可以检测自己的__name__,来确定它是执行还是在导入
在文件末尾加一个__name__测试,即使用if __name__ == '__main__‘