Python的包和模块

简介: 1.模块:英文名 modules 2.在Python中 一个拓展名为.py的文件就是一个模块 3.函数与模块的关系: 包含语句 包含类class 一个模块中可以包含n多个函数def

Python的模块和包

一、Python中的模块

1.什么叫做模块

1.模块:英文名 modules

2.在Python中 一个拓展名为.py的文件就是一个模块

3.函数与模块的关系:

  • 包含语句
  • 包含类class
  • 一个模块中可以包含n多个函数def

4.使用模块的好处:

  • 方便其它程序和脚本的导入
  • 避免函数名和变量名冲突
  • 提高代码的可维护性
  • 提高代码的课重用性
# -*- coding: utf-8 -*-
# @File  : demo.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58


def fun():  # 函数
    pass


class Student:  # 类
    a = 'hello'  # 类属性

    def __init__(self, name):  # 初始化方法
        self.name_ = name  # 实例属性

    def __str__(self):  # 实例方法
        pass

    @staticmethod
    def cm():
        print('静态方法')

    @classmethod
    def cs(cls):
        print('类方法')


a = 10  # 变量
b = 20
c = a + b  # 语句

2.导入模块

创建模块:

新建一个 .py文件,名称尽量不要与 python自带的标准模块名相同

导入模块:

import 模块名称 as 别名  # 导入模块中所有的
from 模块名称 import 函数/变量/类  # 导入模块的指定内容

代码实现:

# -*- coding: utf-8 -*-
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58

import math  # 导入关于数学运算的模块
print(id(math))
print(type(math))  # module
print(math)
print('----------------')
print(math.pi)  # 3.14...
print(dir(math))
print(math.pow(2, 3))  # 幂 2**3=8
print(math.e)
print(math.ceil(9.435))  # 取上整
print(math.floor(9.35))  # 取下整
print(math.log(2, 4))

from math import pi  # 导入模块指定的内容
print(pi)

3.导入自定义模块

自定义模块calc

# -*- coding: utf-8 -*-
# @File  : calc.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58


def add(a, b):
    return a+b


def div(a, b):
    return a/b

导入自定义模块 calc

import calc  # 导入自定义模块 calc
print(calc.add(10, 20))
print(calc.div(8, 2))


from calc import add  # 自定义导入calc模块的add方法
print(add(23, 53))

在这里插入图片描述

4.以主程序的方式运行

在每个模块的定义中都包含了一个记录模块名称的变量 __name__,程序可以检查该变量,以确定他们在哪个模块中执行。

如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。

顶级模块__name__变量的值为__main__

语句:

if __name__ = '__main__':
    pass

自定义模块calc2

# -*- coding: utf-8 -*-
# @File  : calc2.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58


def add(a, b):
    return a+b


if __name__ == '__main__':
    print(add(10, 20))   # 只有当点击运行calc2模块时,才会执行运算

导入calc2模块

# 顶级模块__name__变量的值为__main__
import calc2    # 调用calc2的 add 模块


print(calc2.add(100, 200))

在这里插入图片描述

二、Python中的包

1.包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下

2.包的作用:

  • 代码规范
  • 避免模块名称冲突

3.包与目录的区别:

  • 包含__init__.py文件的目录称为
  • 目录里通常不包含__init__.py文件

4.包的导入: import 包名.模块名

package1下面有module_A模块和module_B模块
在这里插入图片描述

module_A模块

# -*- coding: utf-8 -*-
# @File  : module_A.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58

# 包的导入
a = 10

module_B模块

# -*- coding: utf-8 -*-
# @File  : module_B.py
# @author: Flyme awei
# @email : Flymeawei@163.com
# @Time  : 2022/8/16 11:58

b = 100

导入包package1

'''
包的导入 
import 包名.模块名
'''

import package1.module_A as ma  # 导入包package1中的module_A模块
print(ma.a)  # 10

导入带有包的模块注意事项

1.使用 import方式进行导入时,只能跟 包名模块名
import package1
import package1.module_A
import calc
2.使用 from...import 可以导入 模块函数变量
from package1 import module_A  # 导入模块module_A
from package1.module_A import a   # 导入变量a
print(a)  # 10

在这里插入图片描述

三、Python中常用的内置模块

模块名 描述
sys python解释器及环境相关的标准库
time 提供时间相关的各种函数标准库
os 提供访问操作系统服务功能的标准库
calendar 提供与日期相关的各种函数的标准库
urllib 用于读取来自网上(服务器)的数据标准库
json 用于使用JSON序列化和反序列化对象
re 用于在字符串中执行正则表达式匹配和替换
math 提供标准运算函数的标准库
decimal 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算
logging 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
'''
模块名                        描述
----------------------------------------------------------
1.sys           与python解释器及环境相关的标准库

2.time          提供时间相关的各种函数标准库

3.os            提供访问操作系统服务功能的标准库

4.calendar      提供与日期相关的各种函数的标准库

5.urllib        用于读取来自网上(服务器)的数据标准库

6.json          用于使用JSON序列化和反序列化对象

7.re            用于在字符串中执行正则表达式匹配和替换

8.math          提供标准运算函数的标准库

9.decimal       用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算

10.logging      提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
'''

1.sys模块

与python解释器及环境相关的标准库

import sys  # 导入与python解释器和环境相关的标准库
print(sys.getsizeof(24))  # 字节
print(sys.getsizeof(54))
print(sys.getsizeof(True))
print(sys.getsizeof(False))

在这里插入图片描述

2.time模块

提供与时间相关各种函数的标准库

# time 提供与时间相关各种函数的标准库
import time
print(time.time())
print(time.localtime(time.time()))

在这里插入图片描述

3.os模块

提供访问操作系统服务功能的标准库

# 提供访问操作系统服务功能的标准库
import os

4.urllib模块

import urllib.request
print(urllib.request.urlopen('http://www.baidu.com').read())

在这里插入图片描述

四、第三方模块

1.第三方模块安装

pip install 模块名

2.第三方模块使用

import 模块名

import time
import schedule


def job():
    print('哈哈哈哈哈哈哈哈')


schedule.every(1).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

在这里插入图片描述

相关文章
|
3天前
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
|
6天前
|
Python
Python 中常用的内置模块之`re`模块
【10月更文挑战第11天】 `re` 模块是 Python 内置的正则表达式处理工具,支持模式匹配、搜索、替换等功能。通过 `search`、`match`、`findall` 和 `sub` 等函数,结合正则表达式的元字符、分组、贪婪模式等特性,可高效完成文本处理任务。示例代码展示了基本用法,帮助快速上手。
9 1
|
6天前
|
JSON 数据格式 Python
Python基础-常用内置模块
【10月更文挑战第11天】 Python 内置模块丰富,涵盖系统交互、时间处理、数学运算、正则表达式、数据序列化等功能,如 `sys`、`os`、`time`、`datetime`、`random`、`math`、`re`、`json`、`pickle` 和 `csv` 等,极大提升了开发效率和代码质量。
8 1
|
10天前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
10 1
|
7天前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
24 0
|
11天前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
19 0
|
11天前
|
Python
Python中threading模块的常用方法和示例
Python 的 `threading` 模块提供了多线程编程的能力,允许同时执行多个线程。主要类包括 `Thread`、`Lock` 和 `Condition`。`Thread` 类用于创建和管理线程,`Lock` 用于同步线程,防止资源竞争,`Condition` 用于线程间协调。本文介绍了这些类的常用方法及示例代码,帮助你更好地理解和使用多线程编程。
19 0
|
11天前
|
Shell Python
Python中os模块的常用方法和示例
在Python中,`os`模块提供了与操作系统交互的函数,用于文件和目录管理、路径操作、环境变量等。常用方法包括路径操作(如`os.path.join()`、`os.path.abspath()`)、文件和目录管理(如`os.mkdir()`、`os.remove()`)、环境变量和进程管理(如`os.getenv()`、`os.system()`)以及其他常用功能(如`os.getcwd()`、`os.urandom()`)。
18 0
|
11天前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
14 0
|
11天前
|
监控 Python
探索Python中的异步编程:Asyncio模块的魔力
在这篇文章中,我们将深入探讨Python的Asyncio模块,这是Python异步编程的核心。我们将一起揭开异步编程的神秘面纱,学习如何使用async和await关键字来编写非阻塞代码,以及如何利用异步编程提高应用程序的性能。