模块包的使用介绍

来源:互联网 发布:淘宝中差评修改公司 编辑:程序博客网 时间:2024/05/12 17:14
    通常在写python程序的时候,所用到的模块,都放在和调用模块的文件同一个目录里,通过import 或者from  import这样的语句来调用模块。但是如果文件或模块多了,会显得目录很乱,为了便于管理程序文件和模块,我们会把他们分门别类的存放于不同的文件夹下,但我们把单独存放模块的文件夹,称做模块包。这样问题就来了,如何调用不同模块包下的模块?单单使用import或者 from  import这样的语句是行不通的。
为了解决这样一个问题,我们可以如下面的方法做:

举例说明:

我创建了一个名字为main的文件夹,这里存放的是所有的python程序文件,包括模块。为了便于管理,我把mian里面的模块分成两类分别存放在两个不同的文件夹(模块包)下面他们分别是module_one模块包 和 module_two模块包。注意他们的关系是:main文件夹包括module_one 和module_two ,而module_one 和module_two是相对独立的。

在module_one里,我存放了这样一个模块,名字为:module_one.pyc内容为:

#!/usr/bin/python
#filename:module_one.pyc

def hello_one():
    print 'hello ! this is module_one !'

在module_two里,我存放了这样一个模块,名字为:module_two.pyc内容为:

#!/usr/bin/python
#filename:module_two.pyc

def hello_two():
    print 'hello ! this is module_two !'

在main文件夹里我写了文件名字为:main.py的这样程序,我想在main.py中调用module_one模块并使用里面的方法,应该怎么做?其实很简单,最关键的是,我们要在module_one模块包中创建一个名字为__init__.py(注意init的前后是双下划线)的空内容文件。然后我就在可以在main.py中调用了!main.py代码如下:

#!/usr/bin/python
#filename:main.py

import module_one.module_one
module_one.hello_one()

这样保存后,并运行,我们就会看到结果输出为:

hello ! this is module_one !

这样就成功调用不同模块包里的模块了!

如果我在module_one中创建了一个one.py的程序,想调用module_two模块包中的模块,我可以这么做:在module_two中创建__init__.py。然后在one.py里写如以下代码:

#!/usr/bin/python
#filename:one.py

import main.module_two.module_two
module_two.hello_two()

这样保存后,并运行,我们就会看到结果输出为:

hello ! this is module_two !


只要我们在各个模块包中建立了__init__.py这个关键性的文件,我们就可以通过import 模块包名.模块名 或者 from 模块包名 import 模块名这样的方式任意调用模块。


写在最后:我也是一个python新手,正在学习最为基础的东西,如果本文有错误,请大家原谅~~ 记得报错啊!
原创粉丝点击