默默的学python(五)——模块和包

模块(Module)和包(Package)

1.模块:一个包含所有你定义的函数和变量的文件,其后缀名是 .py ,一个.py文件就是一个模块

2.包:一定包含 init.py模块 的文件夹,一般也会包含其他一些模块和子包

3.库(lib):库是完成一定功能的代码集合,具体表现可以是包,也可以是一个模块

4.框架(framework):为解决一个开放性问题而设计的具有一定约束性的支撑结构

5.python内置了一些库,除此之外,还有其他人自己做的一些库,称之为第三方库

6.一般把第三方库放在…/python3/lib/site_packages中

一、导入模块

注意:python中同一模块只允许被导入一次

1.import 语句

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端
1)import
import导入模块执行的操作:

  • 产生一个新的名称空间;

  • 在新建的名称空间俩面执行模块(.py)的内容

  • 拿到了一个模块名, 执行模块文件产生的名称空间

      import json
      import unittest
    

2)import …. as …**

  • 对于导入的模块重命名

列如

import common.HTMLTestRunner as HTMLTestRunner

2.from … import… 语句

从模块里面导入函数, 变量, 装饰器等……
列如:

from time import steep

3.安装第三方模块

使用:
pip install 模块名称
在终端中执行该命令
在这里插入图片描述

二、包

包就是一个包含有__init__.py文件的文件夹
包的本质是模块的一种形式,包是用来被当做模块导入

导入包发生的三件事(假设导入mmm包):

1、产生一个名称空间
2、运行包下的__init__.py文件,将运行过程中产生的名字都丢到1的名称空间中
3、在当前执行文件的名称空间中拿到一个名字mmm,mmm指向1的名称空间

mmm文件下__init__.py

print('运行了。。。。')
x = 1111
y = 2222

def say():
    print('hello')

test.py

import mmm

print(mmm.x)
print(mmm.y)
mmm.say()

结果:

运行了。。。。
1111
2222
hello

关于包相关的导入语句也分为import和from … import …
两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:

凡是在导入时带点的,点的左边都必须是一个包,否则非法。
如import 顶级包.子包.子模块,但都必须遵循这个原则。

对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。

例如:
from a.b.c.d.e.f import xxx
import a.b.c.d.e.f
其中a、b、c、d、e 都必须是包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值