美文网首页python
Python基础(七)模块和包

Python基础(七)模块和包

作者: 鹊南飞_ | 来源:发表于2019-10-15 23:53 被阅读0次

1.模块化编程

1. 导入模块的语法

# 导入整个模块
import 模块名1 [as 别名1], 模块名2 [as 别名2], ...  
# 导入模块中指定成员
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],...

第一种导入整个模块的的所有成员(包括变量,函数,类等)
第二种只导入模块内的指定成员(除非使用from 模块名 import *,但通常不推荐使用)
使用第一种的成员时,必须添加模块名或模块别名前缀
使用第二种的成员时,无须使用任何前缀

导入模块

2. 定义模块

模块就是Python程序!任何Python程序都可以作为模块导入。
对于任何程序,只要导入了模块就可以使用该模块内的所有成员。

3. 为模块编写说明文档

在第一行代码之前。用“”“”“”包含起来的说明文字就是说明文档了。
可以通过模块的doc属性来访问文档

文件路径


文件路径

test1.py


test1.py
test2.py
test2.py

test2.py 运行结果


test2.py 运行结果

4. 为模块编写测试代码

当模块编写完成后,可以还需要为模块编写一些测试代码,用于测试模块中的每一个程序单元是否都能正常运行。

2. 加载模块

1. 为了让Python能找到我们编写(第三方提供)的模块,有以下两种方式:

  1. 使用环境变量
  2. 将模块放在默认的模块加载路径下

2. all变量

有的模块中虽然包含很多成员,但不希望每个成员都暴露出来供外界使用,可以借助all变量,将变量的值设置成一个列表,只有该列表中的程序单元才会被暴露出来。
all_module.py

'测试__all__变量的模块'

def hello():
    print("Hello, Python")
def world():
    print("Pyhton World is funny")
def test():
    print('--test--')

# 定义__all__变量,指定默认只导入hello和world两个程序单元
__all__ = ['hello', 'world']

all_module_test.py

# 导入all_module模块内所有成员
from all_module import *
hello()
world()
test() # 会提示找不到test()函数

3. 使用包

1. 什么是包

  1. 从物理上看,包就是一个文件夹,在该文件夹下包含了一个init.py文件,该文件夹可用于包含多个模块源文件。
  2. 从逻辑上看,包的本质依然是模块。

2. 定义包

  1. 创建文件夹,包名就是文件夹的名字。
  2. 在该文件夹内添加一个init.py文件即可。

3. 导入包内成员

与导入模块类似

4. 查看模块内容

1. 模块包含什么

  1. 使用dir()函数
  2. 使用模块本身提供的all变量
    dir函数
    __all__变量

2. 使用doc属性查看文档

help(string.capwords)
# 或者
print(string.capwords.__doc__)

3. 使用file属性查看模块的源文件路径

print(string.__file__)

相关文章

网友评论

    本文标题:Python基础(七)模块和包

    本文链接:https://www.haomeiwen.com/subject/sqciuctx.html