码农阿勇 2020-02-28 19:51:00 1、 包与模块,类,函数之间的关系 随着互联网和IOT的发展,我们在享受软件的强大和智能的同时,其背后与之对应的代码规模也越来越大。因此我们无法将所有的功能代码块都放在一个文件中去。于是我们根据功能进行拆分为一个个模块进行组织。当模块很多的时候,为了便于模块管理和防止模块重名,又引入了一个比模块更大的容器(包)来组织模多个块。 其实python的程序我们可以理解为有包,模块和模块中的函数和类组成。它们之间的关系如下图所示: 2、 如何创建一个包 创建一个包其实很简单,你只需要创建一个空的文件夹,然后在这个文件夹中放一个名为__init__.py这样的模块,里边什么都不用写。 这样一个包就成了。例如我在D盘跟目录下创建一个名为mypkg的包如下图所示。 注意包中的__init__.py这个模块不能少,否则就成文件夹了。其实本质上来讲包就是个文件夹。如果在pycharm中创建包更简单,直接在当前的工程名上点击右键,选择new菜单,然后选择python package即可,如下图所示。 3、 如何使用一个包中的模块 包中只有存放模块,包才有意义,在包外的主程序模块如何调用包中模块中的函数或类那?其实也是通过import关键字来实现的。 第一种导入方法如下图所示: 第二种导入方法如下图所示: 通过包名就可以有效的防止模块重名。 4、 包中的__init__.py模块有啥用 1、它的第一个作用就是用来识别它是一个包还是一个文件夹的作用。 2、可以用来做批量导入。 首先我在__init__.py中写入如下代码 然后我在test_module.py中可以不写导入random和re模块的导入语句,直接调用模块中的函数如下图所示: 其实import后跟包名,其实导入的是__init__.py模块,也就是说在导入时会自动执行包中的__init__.py模块中的代码。 3、当然也可以把__init__.py当做一个普通模块来使用,但是一般不推荐这样用。 在__init__.py中定义一个函数test_add. 然后在test_module.py中调用该包中__init__模块中的函数,如下图所示,直接通过包名来调用,从这个可以看出,包其实也是一个特殊的模块.导包就是导__init__.py模块。 以上就是勇哥给大家分享python中关于包的使用 |
|