模块和包

一、模块

1、 什么是模块:已经写好的一组功能的集合,别人写好的函数,变量,方法放在一个文件里(这个文件可以被我们直接使用),这个文件就是模块。

二、模块的调用

1、from xxx import xxx as x  //  import xxx :1、命名空间  :模块和文件在不同的命名空间

                                                                        2、为模块起别名

                                                                       2、 一行导入多个模块   :1、内置模块

                                                                                                                  2、 扩展模块(第三方模块)

                                                                                                                  3、 自定义模块

2、*与__all__的关系:__all__能够约束*导入的变量的内容

三、模块引用中的情况

1、模块的加载与修改:已经被导入的模块发生了修改不会被感知到的

2、模块的循环引用:模块之间不允许循环引用

3、把模块当成脚本运行

方式:1、cmd ,在python中直接运行就是一个脚本

            2、导入一个模块

当一个py文件:1、当作一个脚本时:能够独立提供一个功能,能自主完成交互

                          2、当作一个模块时:能够被导入这个功能,不能自主交互 

一个文件用的__name__变量:1、当这个文件被当作脚本运行时,__name__="__main__"

                                                  2、当这个文件被当作模块导入时,__name__="模块的名字"

                                              

4、模块的搜索路径:和被当作脚本运行的文件,同级目录下的模块可以被直接导入,除此之外其他路径下的模块在被导入的时候,需要自己修改sys.path列表

path=" "
sys.path.append(path)

四、模块导入的过程

1、找到这个模块

2、判断是否被导入

3、如果没有被导入:

  1. 常见一个属于这个模块的命名空间
  2. 执行

五、包

1、什么是包:文件夹中有一个__init__.py文件;是几个模块的集合

2、import 包

导入一个包相当于执行了这个包下面的__init__.py文件

导入一个包,不意味着这个包下面的所有内容都是可以被使用的

3、相对导入:含有相对导入的文件不能被执行,必须放入包中被导入的调用才能正常下hi用

4、绝对导入的缺点:所有的导入都要从一个根目录下往后解释文件夹之间的关系,如果当前导入的包的文件和被导入包的的位置发生变化,那么所有__init__.py文件都要做出相应的调整。在执行一个py脚本的时候,这个脚本和这个脚本同级的模块中只能用绝对导入

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值