025_Python知识点_模块与包

1. 模块

模块:即工具包,单个Python文件就是一个模块,想要使用这个工具包中的工具(就好比函数),就需要导入这个模块。

1.1 模块导入方式

导入模块的过程实质是执行文件 (.py) 的过程

# 方式 1:
import 模块名1, 模块名2

# 方式 2:
import 模块名.函数名

# 方式 3:
from 模块名 import 函数名/变量名

# 方式 4:避免导入的模块名或函数名过长,提升代码的可读性
import 模块名 as 模块名的别名

# 方式 5:导入模块中的所有项目,不建议过多使用
from 模块名 import *
1.2 常见的模块内置属性
  1. __name__:模块名称。如果作为模块导入另一文件中,此时的模块名称为文件名;如果不是作为模块导入,此时的模块名为 “__mian__”。
    常见的应用场景:测试代码的执行,python在执行一个文件时利用变量 __name__,根据__name__变量的结果判断,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码。代码示例:
"""
File: my_test.py
Author: 
Date: 2019-12-22
Connect: 123456
Description: 
"""
def my_test():
	print("****test****")
	
"""
判断模块名称:
	1). 如果该模块导入至另一文件,__name__ == "my_test"
	2). 如果模块不是进行导入, __name__ == "__main__"
"""
if __name__ == "__main__":
	my_test()
  1. __file__:返回文件的绝对路径
  2. __doc__:指向文件的帮助文档
  3. __all__:当利用 from 模块名 import * 导入模块时,限制导入的功能或属性
# __all__的使用方式,将可以利用  from 模块名 import * 方式导入的功能名和变量名存储的列表中
__all__ = ["fun1", "fun2", "arg1"]

2. 包

包:将有联系的模块放在同一个文件夹下,并且在这个文件夹下创建一个名为__init__.py的文件,那么这个文件夹称为包,包能有效避免模块名称冲突问题,让应用组织结构更加清晰。
一个普通的python应用程序目录结构:

package_a  # 包:名为 package_a 的文件夹
|—— __init__.py
|—— model_a1.py  # 模块:.py 文件
|—— model_a2.py  # 模块:.py 文件
|—— ...

3. 模块的制作与发布

  1. 为模块文件创建一个文件夹,并将模块文件复制到这个文件中 (一般,文件夹的名字和模块的名字一样)
  2. 在文件夹中创建一个名为『setup.py』的文件,内容如下:
from distutils.core import setup

setup(
    name='verifycode',
    version='1.0.0',
    author='xiaoma',
    author_email='[email protected]',
    description="实现验证码图片生成器",
    py_modules=['verifycode']
)

同时,当前的目录信息如下:
在这里插入图片描述
3. 构建模块,在terminal中输入

> python3 setup.py build

执行结果:
在这里插入图片描述
同时,当前的目录信息如下:
在这里插入图片描述
4. 生成压缩包,在terminal中输入

> python3 setup.py sdist

执行结果:
在这里插入图片描述
同时,当前的目录信息如下:
在这里插入图片描述

4. 模块的安装与使用

  1. 找到模块的压缩包
  2. 解压
  3. 进入文件夹
  4. 执行命令sudo python setup.py install
发布了37 篇原创文章 · 获赞 0 · 访问量 5315

猜你喜欢

转载自blog.csdn.net/qq_21156327/article/details/103699515