Python--模块和包

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python--模块和包相关的知识,希望对你有一定的参考价值。

1. Python--模块和包


1.1 源程序模块结构

Python的程序是由包(package)、模块(module)和函数组成。
模块是处理某一类问题的集合,模块由函数和类组成。包是由一系列模块组成的集合

在这里插入图片描述


1.1.1 包

包就是有一个完成特定任务的工具箱,Python提供了许多有用的工具包。
如字符串处理、图形用户接口、Web应用、图形图像处理等。一个程序完整的结构,有如下几部分组成:

在这里插入图片描述
在这里插入图片描述


1.2 模块

Python提供了强大的模块支持,主要体现为不仅在Python标准库中包含了大量的模块(称为标准模块),
而且还有很多第三方模块,另外开发者自己也可以开发自定义模块。通过这些强大的模块支持,将极大地提高我们的开发效率。
模块的英文是Modules,可以认为是一盒(箱)主题积木,通过它可以拼出某一主题的东西。
这与函数不同,一个函数相当于一块积木,而一个模块中可以包括很多函数,也就是很多积木,所以也可以说模块相当于一盒积木。

1.2.1 模块的定义

在这里插入图片描述


1.2.2 模块的导入

在这里插入图片描述

使用from…import语句导入模块
在这里插入图片描述
在这里插入图片描述


1.2.3 模块导入示例

pizza.py

def make_pizza(size, *toppings):
    """概述要制作的比萨"""
    print("\\nMaking a " + str(size) + "-inch pizza with the follwing toppings:")
    for topping in toppings:
        print("- " + topping)

接下来,我们在pizza.py所在的目录中创建另一个名为making_pizzas.py的文件,这个文件导入刚创建的模块,再调用make_pizza() 两次:

making_pizzas.py

import pizza

pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

在这里插入图片描述


1.2.3.1 导入特定的函数

你还可以导入模块中的特定函数,这种导入方法的语法如下:

from module_name import function_name

通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

from module_name import function_0, function_1, function_2

对于前面的making_pizzas.py示例,如果只想导入要使用的函数,代码将类似于下面这样:

from pizza import make_pizza

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

1.2.3.2 使用as给函数起别名

如果要导入的函数的名称可能与程序中现有的名称冲突,或者函数的名称太长,可指定简短而独一无二的别名别 ——函数的另一个名称,类似于外号。要给函数指定这种特殊外号,需要在导入它时这样做。

下面给函数make_pizza() 指定了别名mp() 。这是在import 语句中使用make_pizza as mp 实现的,关键字as 将函数重命名为你提供的别名:

from pizza import make_pizza as mp

mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')

1.2.3.3 使用as给模块指定别名

你还可以给模块指定别名。通过给模块指定简短的别名(如给模块pizza 指定别名p ),让你能够更轻松地调用模块中的函数。相比于pizza.make_pizza() ,p.make_pizza() 更为简洁:

import pizza as p

p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

1.2.3.4 导入模块中所有的函数

使用星号(* )运算符可让Python导入模块中的所有函数:

from pizza import *

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

最佳的做法是,要么只导入你需要使用的函数,要么导入整个模块并使用句点表示法。这能让代码更清晰,更容易阅读和理解。


1.2.4 模块搜索目录

在这里插入图片描述

代码:

import sys

print(sys.path)

运行结果:
在这里插入图片描述

['E:\\\\PyCharmCode\\\\courceDesign\\\\studypPY', 'E:\\\\PyCharmCode\\\\courceDesign', 
'C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python38\\\\python38.zip', 
'C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python38\\\\DLLs', 
'C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python38\\\\lib', 
'C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python38', 
'E:\\\\PyCharmCode\\\\courceDesign\\\\venv', 'E:\\\\PyCharmCode\\\\courceDesign\\\\venv\\\\lib\\\\site-packages']

1.2.5 模块导入错误

import abcdef

在这里插入图片描述

发生这样的错误时,解析器会提示说无法访问请求的模块,
是因为模块不在搜索路径里,从而导致了路径搜索的失败。

1.2.6 绝对导入和相对导入

在这里插入图片描述


1.2.7 Python中的包

在这里插入图片描述


1.2.7.1 Python程序的包结构

__init__.py的作用是让一个呈结构化分布(以文件夹形式组织)的代码文件夹变成可以被导入import的软件包。

在这里插入图片描述


1.2.7.2 创建包

在这里插入图片描述


1.2.7.3 使用包

1.2.7.3.1 第一种使用包的方式

在这里插入图片描述


1.2.7.3.2 第二,三种使用包的方式

在这里插入图片描述



以上是关于Python--模块和包的主要内容,如果未能解决你的问题,请参考以下文章

Python学习---模块和包

python基础14 ---函数模块5(模块和包)

21.python的模块(Module)和包(Package)

Python 模块和包的概念

python模块和包的导入

Python语法之模块和包