ycycoco 发表于 2015-4-21 08:50:43

简述Python模块和包

  我们常常会使用别人写的包,假如我们使用的是Python3.4版本,安装在windows的C盘根目录下,那么外部的包一般放在:C:\Python34\Lib\sit-packages下,此目录下有以.py单独存在的文件,也有以文件夹存在的包,下面我们简单说一下Python中的模块和包,看完之后,也许会对这个目录看的更清楚一些。
  一、模块
  我们编写文件:a.py,放在C:\Python34\Lib\sit-packages下,里面写上一句代码为:



print('this is a')

  之后我们就可以在我们的代码里面引用a.py文件,这里a.py就称为一个模块。在我们的工作目录编写文件:test.py,代码如下:



print('hello world')

  运行后,显示结果为:
  hello world  
  修改test.py代码为:



import a
print('hello world')

  运行后,显示结果为:
  this is a
hello world
  由于我们在代码里面增加了import a,所以会先执行a.py模块里面的代码。  
  这里补充一点,我们除了可以引用.py结尾的模块文件,也可以引用.pyc.pyo.pyd.so .dll后缀的模块文件,这几个文件有什么区别呢,网上找的一个回答,可以参考一下:

  二、包
  如果有许多个.py模块文件,我们可以把他们统一放在一个文件夹下,方便管理,在C:\Python34\Lib\sit-packages下,新建文件夹Test,文件夹Test下新建b.py c.py,分别写上代码:print('b')和print('c'),修改test.py代码为:



import Test.b
print('hello world')

  运行后,显示结果为:
  this is b
hello world
  三、为包增加__init__.py文件
  我们看到很多包里面都包含__init__.py文件,我们也在Test文件夹下新建此文件,输入代码:print('this is init'),再次运行test.py,
  运行后,显示结果为:
  this is init
this is b
hello world
  可见,增加__init__.py文件后,引入包后,会先运行__init__.py中代码
  四、子包
  如果要在包中建立子包,那么同样的方法,在Test文件夹下新建childTest文件夹,里面依然放进我们需要的.py文件即可。
  现在再去打开C:\Python34\Lib\sit-packages,是不是感觉熟悉了一些?  
页: [1]
查看完整版本: 简述Python模块和包