python基础之模块和包

系统 1345 0

模块:
模块就是一个python文件。
模块就是一个python文件。
功能:

            
              1.可以提高文件的重复利用率。提高开发效率
2.用于划分程序结构。

自定义模块:

模块就是一个python文件而已,所有python代码都可以放入模块,实际开发中,模块放入的内容都是
重复利用率高的内容主要包含:
1.为当前模块专门定义的变量【其他语言一般都是常量】
2.函数。
3.类
4.测试代码
注意:模块的命名不要和内置模块重名!

测试代码统一放到判断当中
    if __name__ == '__main__':
    
只在当前文件测试代码,当前文件的属性,功能不能被其他文件调用
模块的导入:

1.import 模块名
    直接导入整个模块

2.import 模块名 as 别名
    使用别名导入模块,适用于模块名称较长的模块

3.from 模块名 import 某个内容
    导入模块中的指定内容。
    注意:该方式是将模块中的内容直接导入当前脚本当中,访问不需要模块名称

4.from 模块名 import 内容1,内容2,内容3....
    导入模块中的指定的多个内容。
    注意:该方式是将模块中的内容直接导入当前脚本当中,访问不需要模块名称
​
5.from 模块名 import *
    导入模块中的所有内容
    注意:该方式是将模块中的内容直接导入当前脚本当中,访问不需要模块名称
    受保护的内容不能使用这种方式进行访问
警告:

使用from ... import 语法必须确定 模块中的内容不会和当前脚本中的内容重名。
模块的搜索路径:

            
          

import module1
name = “王大锤”
print(module1.name)

导入模块的时候程序查找指定模块的文件夹的路径的集合。

import sys
print(sys.path)
常用搜索路径(windows)

1.当前导入模块的文件所在的文件夹
仅仅是一个普通的程序文件,为当前文件夹下的文件使用的模块

2.(python安装目录中的Lib文件夹)C:\Users\xdl\AppData\Local\Programs\Python\Python37\Lib
表示为python扩展功能,适用于所有使用当前环境的程序

3.(真实和虚拟环境要区分好)第三方模块的目录\Lib\sitepackages(C:\Users\xdl\AppData\Local\Programs\Python\Python37\Lib\site-packages)
也是为python扩展功能,相当于用户为自己环境扩展的而不是为整个python扩展的

自己添加搜索路径:
import sys
sys.path.append(‘路径’)
包:
文件夹。所以包就是一个普通的文件夹在python中的称呼。
作用:
1.主要用于组织模块。
2.可以当作模块使用。
包的结构:
包(文件夹)
|---- init .py 包的标志文件(可以有内容,也可以是空的!)
|---- 模块1(文件)
|---- 模块2(文件)
|---- …
|---- 子包(文件夹中的文件夹)
|----- |---- init .py 包的标志文件(可以有内容,也可以是空的!)
|----- |---- 模块3
|----- |---- 模块4
|----- |---- …
包的导入方式:
import语法导入
1.import 包名
导入包本身,但是不一定能够导入内容.

  1. import 包名.模块名
    导入包中的指定模块。

  2. import 包名.子包名
    导入子包本身,但是不一定能够导入内容.

4.import 包名.子包名.模块
导入包中子包中的模块
以上四个语法均可以使用as语法设置别名
from import 语法导入
1.from 包 import 模块
从包中导入一个模块

2.from 包 import 模块1,模块2…
从包中导入者多个模块

3.from 包 import 子包
从包中导入子包,无法使用模块中的信息

4.from 包.子包 import 模块
导入包中子包中的模块

5.from 包名.子包.模块 import 内容
导入包中子包中模块的一个或者多个内容
all 特殊变量:(少用)
1.包是文件夹一般不能够存储信息。
2. init .py文件除了当做包的标志之外,还可以为包本身存储信息,使得包具有模块的内容
3.在__init__.py文件中,如果设置了__all__变量,并且使用from 包 import * 语法导入包本身
init .py中除了__all__的设置之外,其余设置均会失效
4.__all__变量的作用在使用from 包 import *的导入方式之下,可以设定当前包导入时所使用的模块
all = [‘模块名’,‘模块名’,‘模块名’,…]

相对导入与绝对导入方式:
绝对导入:
import 包
import 模块
import 包.子模块
from 包 import 模块
from 模块 import 内容
查找方式:绝对导入方式会使用【搜索路径】查找指定的包或者模块的所在

相对导入:
import 语法无法使用 !
from .包名/模块名 import 内容
from …包名/模块名 import 内容
查找方式:在当前文件夹中搜索查找指定的包或者模块
# 相对路径导入时,不可以直接运行当前文件,因为python会把当前文件作为最顶层文件直接运行,如果要使用的话,就要在别的文件里使用绝对路径方式导入此文件,才可以运行。
# 单入口设计模式就是由此而来。
# 单入口设计模式的优点:安全,隐私性较高。缺点:代码调试不好做。
注意:from后面可以使用. import 后面允许使用,
例子:

from . import pkg 相对于当前路径引入模块
from .模块名 import 属性名 相对于当前模块引入具体属性
from … import 模块名 相对于上一级引入模块
from …包名 import 模块名 相对于上一级的某个包引入模块
from …包名.模块名 import 属性名 相对于上一级某个包下的某个模块引入某属性
. 当前路径
… 上一级路径
… 上一级的上一级
… 上一级的上一级的上一级
… (这里的点是无限的)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论