Python--模块、包的导入

1、系统模块 sys

1.1 运行时系统相关的信息

1.2 sys模块的数据

	数据					描述
---------------------------------------------------------------
sys.path        		 模块搜索路径 path[0] 是当前脚本程序的路径名,否则为 ''
sys.modules     		 已加载模块的字典
sys.version     		 版本信息字符串
sys.version_info    	 版本信息的命名元组
sys.platform    		 操作系统平台名称信息
sys.argv    			 命令行参数 argv[0] 代表当前脚本程序路径名
sys.copyright   		 获得Python版权相关的信息
sys.builtin_module_names 获得Python内建模块的名称(字符串元组)
sys模块的函数
===============================================================
    函数名     					描述
---------------------------------------------------------------
sys.exit([arg])     		退出程序,正常退出时sys.exit(0)
sys.getrecursionlimit()     得到递归嵌套层次限制(栈的深度)
sys.setrecursionlimit(n)    得到和修改递归嵌套层次限制(栈的深度)

2、用户自定义模块

2.1 要求:

模块名以 .py 结尾
模块名必须是表示符的命名规则
避免名称和内建模块冲突

2.2 导入语句:

import 语句
from ...import 语句
from ...import * 语句

2、import语句的导入路径顺序

1)索引内建模块builtin
2)搜索程序的运行路径(当前路径)
3)sys.path提供的路径

3、让用户自定义模块被导入的两种方法

1)将模块安装到(复制)到sys.path提供的路径
2)在运行程时,在sys.path里添加自定义路径

4、模块的加载过程

在导入模块时,模块的所有语句都会执行
如果一个模块已经被导入,则再次导入时不会重新执行模块内的语句

5、模块被导入和执行的过程

1)先搜索相关路径找模块文件(.py)
2)判断是否有此模块对应的.py,如果pyc文件比.py文件新,则直接加载.py文件
3)否则用模块名.py文件生成.pyc并加载执行

6、模块的编译

	编译		   解释执行
mymod.py   -----> mymod.pyc -----> python3

7、模块的属性

7.1 __doc __ 属性,用来绑定文档字符串
模块内的第一次没有赋值给任何变量的字符串为模块的文档字符串
模块内的文档字符串绑定在模块的 doc 属性上

7.2 __file__属性

 __file__属性 用于绑定此模块对应的文件路径

7.3 __name__属性

7.3.1 作用:

1)用来记录模块的名字
2)用来判断是否为主模块

7.3.2 说明:

当此模块为主模块运行时, __name__ 的值为‘__main__’
当此模块不是主模块时,__name__ 绑定模块的名字

7.4 模块的 all 列表:

模块中的 __all__列表必须是一个字符串列表

作用:

当用 from mymod import* 导入时,只导入 __all__列表内的属性

7.5 模块的隐藏属性

模块中以“_” 开头的属性,在from xxx import * 导入时将不被导入,通常称这些属性为隐藏属性

8、包(模块包)

8.1 包的定义

包是将模块以文件夹的组织形式进行分组管理的方法

8.2 作用:

将一系列模块进行分类管理,有利于防止命名冲突
可以在需要加载一个或部分模块而不是全部模块

8.3 示例:

mypack/
    __init__.py			# __init__.py 是常规包内必须存在的文件
    menu.py
games/
	__init__.py
	contra.py
	supermario.py
	tamks.py
office/
	__init__.py
	word.py
	excel.py

9、包的导入

9.1 导入规则

(1)
import 包名 [as 包新名]
import 包名.模块名 [as 模块新名]
import 包名.子包名.模块名 [as 模块新名]
(2)
from 包名 import 模块名 [as 新模块名]
from 包名.子包名 import 模块名 [as 新模块名]
from 包名.子包名.模块名 import 属性名 [as 新属性名]
(3)
from 包名 import *
from 包名.模块名 import *
...

9.2 import 语句搜索引包的路径顺序
1) 当前路径
2)sys.path提供的路径

10、包的相对导入

包的相对导入是指包内模块的相互导入
10.1 语法:

from 相对路径包或模块名 import 属性或者模块名
或
from 相对路径包或模块名 import*

10.2 相对路径

在from 和 import 间可以用相对路径
    .代表当前目录
    ..代表上一级目录
    ...代表上二级目录
    以此类推

10.3 注:

相对导入时不能超出包的外部

10.4 搜索路径:

当前路径
sys.path制定的路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值