当前位置:   article > 正文

Python--模块和包_python 模块和包

python 模块和包

1. Python–模块和包


1.1 源程序模块结构

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

在这里插入图片描述


1.1.1 包

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

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


1.2 模块

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5

接下来,我们在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
  • 4

在这里插入图片描述


1.2.3.1 导入特定的函数

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

from module_name import function_name
  • 1

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

from module_name import function_0, function_1, function_2
  • 1

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

from pizza import make_pizza

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
  • 1
  • 2
  • 3
  • 4

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
  • 4

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
1.2.3.4 导入模块中所有的函数

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

from pizza import *

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
  • 1
  • 2
  • 3
  • 4

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


1.2.4 模块搜索目录

在这里插入图片描述

代码:

import sys

print(sys.path)
  • 1
  • 2
  • 3
'
运行

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

['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
  • 3
  • 4
  • 5
  • 6

1.2.5 模块导入错误

import abcdef
  • 1

在这里插入图片描述

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

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 第二,三种使用包的方式

在这里插入图片描述



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/983097
推荐阅读
相关标签
  

闽ICP备14008679号