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)

在这里插入图片描述

相关文章
|
10天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
26 5
|
20天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
23天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
69 5
|
24天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
25天前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
55 1
|
22天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
17 0
|
23天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
23天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
24天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
|
25天前
|
Python
SciPy 教程 之 SciPy 模块列表 11
SciPy教程之SciPy模块列表11:单位类型。常量模块包含公制单位、质量单位、角度换算、时间单位、长度单位、压强单位、体积单位、速度单位、温度单位、能量单位、功率单位、力学单位等。体积单位示例展示了不同体积单位的换算,如升、加仑、流体盎司、桶等。
19 0
下一篇
无影云桌面