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天前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
105 47
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
7天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
72 4
|
1月前
|
Python
Python Internet 模块
Python Internet 模块。
124 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
130 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
14天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
26 3
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
11天前
|
程序员 Linux Python
python中模板和包的使用
本文介绍了 Python 模块和包的基本概念及使用方法。模块是 Python 程序结构的核心,每个以 `.py` 结尾的源文件都是一个模块,包含可重用的代码。文章详细讲解了模块的导入方式(如 `import` 和 `from...import`),模块的搜索顺序,以及如何创建和发布自己的模块。此外,还介绍了包的概念,包是包含多个模块的特殊目录,并通过 `__init__.py` 文件定义对外提供的模块列表。最后,文章简述了如何使用 `pip` 工具管理第三方模块的安装与卸载。作者:大石头的笔记;来源:稀土掘金。
|
1月前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
32 5