Python基础学习之包与模块详解

文章目录

    • 前言
    • 什么是 Python 的包与模块
      • 包的身份证
      • 如何创建包
      • 创建包的小练习
    • 包的导入 - import
    • 模块的导入 - from…import
      • 导入子包及子包函数的调用
      • 导入主包及主包的函数调用
      • 导入的包与子包模块之间过长如何优化
    • 强大的第三方包
      • 什么是第三方包
      • 如何安装第三方包
    • 总结
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道


前言

首先我们要了解什么是包?什么是模块?接下来我们还要学习 如何自定义创建包、自定义创建模块以及如何导入包与模块。最后我们在学习如何使用第三方包,第三方包就是别人开发好的包。关于包的课程学完之后,就是文件的读写,通过学习这方面的知识,可以让我们动态的创建文件、编辑文件、阅读文件。当我们具备文件的基础读写能力之后,我们就可以学习一些相关的模块了,如 yaml文件模块、json文件与模块、日志模块…

接下来我们就开始学习 包与模块 ,通过学习该部分之后,我们就可以灵活运用 Python 在各个领域中了。比如 web 开发,我们就可以使用 web 相关的包与模块。有很多人在为 python 做贡献,他们贡献的就是这些 包与模块。而之前我们学习的课程,也都是在为我们学习包与模块在做准备,一句话总结,学会 包与模块 是真正学会 Python 的重要标志。

在这里插入图片描述

什么是 Python 的包与模块

  • 包的定义:简单粗暴的解释,当一个文件夹内包含一个 __init__.py 文件时我们就可以认为它是一个包;如果该文件夹下还有子文件夹且该子文件夹中也有一个 __init__.py 文件,我们就可以认为它是包中还有包。
  • 模块的定义:任何 *.py 格式的文件都可以当作模块,我们可以使用 import 关键字对其执行导入操作。

我们都知道每一个模块下都是 Python 的函数,所以我们使用一个包或者模块,最终的目的就是使用他们内部函数的功能帮助我们实现业务需要。

一个包里,可以有一个或多个模块;通过调用 包 下面某个 模块 的某个函数去执行,这就是我们使用 Python包或模块的目的

包的身份证

__init__.py 文件时每一个 python 包必须存在的文件,只有存在 __init__.py 文件的目录,python 解释器才会认为这是一个 包 ;如果没有该文件, python 解释器只会认为这是一个普通的文件夹。示意图如下:

从上图我们看出来,除了 __init__.py 文件之外,包的目录文件图标有个圆形的小圆点式的图案。而普通文件夹没有任何标识。试想一下,如果我们在 python_package_test 文件夹内创建一个 __init__.py 文件会怎样?44944…

如何创建包

其实已经不再需要多说什么了,首先创建一个文件夹。然后在文件夹中创建一个 python 包的身份证文件 __init__.py 即可;__init__.py 文件可以空空如也,什么都不用写,只要保证该文件的名字是 __init__.py 即可。 Python 解释就会认为这是一个包,之后我们就可以在包里书写任意的脚本(也就是模块),非常的简单。不过我们还需要创建包的良好规范:

  • 首先要有一个主题,功能明确,同时也要方便使用;方便别人看一眼名字就知道是否需要使用你这个包。
  • 其次层次要分明,一个包内可以有很多各模块或者子包。它们之间的关系要明确,这也为后期维护代码起到很好的辅助作用。

除了上述的创建文件夹之后再创建包的身份文件 __init__.py 之外,Pycharm 还可以直接通过 new ---> Python Package 的方式,直接创建一个包。示意图如下:

创建包的小练习

接下来我们尝试创建一个 animal 的包,同时在 animal 包下创建一个 cat 包 和 dog 包。然后分别在 cat 包与 dog 包中创建一个 action.py 模块,并且在各自的 action.py 模块定义 eat()、jump()、run() 函数。

同样的方法在 dog 子包内创建 action.py 模块,内容如下:

\# coding:utf-8


def eat():
    return '狗爱啃骨头'


def run():
    return '猫会跑'


def jump():
    return '猫会跳'

这里我们创建了 cat 与 dog 两个子包,实际上真正有功能的是两个子包中的 action.py 模块。在这两个模块内,各有三个函数 eat()、run()、jump()。所以我们的最终目的是使用分别来自 cat 与 dog 两个子包的 action.py 模块的三个函数,接下来我们就看一下如果导入、调用这两个子包与使用子包内的函数。

包的导入 - import

如果想要使用一个 包 或者 模块 ,就需要先将其导入到我们当前的脚本中。在学习 python 脚本结构 的章节,我们曾经介绍过,在脚本的顶部为 头部注释 区域;接下来就是 导入区域 ,导入区域 就是将我们需要的包、模块导入到我们当前的脚本中。接下来 我们看一下 包的导入 import 关键字的用法:

\# 用法:
import package

# 参数:
# package:被导入的包的名字

# 要求:
# 只有 python 包才能被 impor 关键字捕获并导入,也就是说 python 包中必须要有 \_\_init\_\_.py 这个文件
# 并且 import 只会拿到当前对应包下的 \_\_init\_\_.py 中的功能或当前模块下的功能

关于 import 只会拿到当前对应包下的 __init__.py 中的功能或当前模块下的功能 可能不是那么好理解,接下来 我们在 Pycharm 做个小实验,加深一下理解。

首先打开 Terminal 终端,输入 python 启动 Python 解释器。然后导入 animal 包,然后使用 animal 包下的 cat子包。如下图:

这里发现报错了,属性错误 animal 里没有 cat 这个属性;这是为什么?cat 这个子包 确实在我们的 animal 包下啊。再做个小实验,我们在 animal 包下的 __init__.py 文件内书写一些内容。

然后退出我们的 python 解释器再进入,为什么要退出呢?这是因为我们的包的当前结构发生了变化,所以需要退出再重新进入,否则 在 Treminal 终端执行的仍然是之前的结果。这个时候我们再重新 import animal 的包,然后执行以下看看。

这时候在结合刚刚我们说的 import 只会拿到当前对应包下的 __init__.py 中的功能或当前模块下的功能 , 如果想要调用一个包中或者模块中的函数函数功能,只需要通过包或者模块的名称 + . 的形式去调用它的函数名就可以了。这个方法是不是和我们面向对象的使用方式很相似呢?

现在又有一个问问题了,刚刚我们导入的是 animal 包以及使用了 __init__.py 文件中的功能,那么我们我们该如何使用 animal 包下的 cat / dog 子包中的函数功能呢? 继续往下,我们看看 模块的导入 部分

模块的导入 - from…import

接下来我们学习如何通过包导入对应的模块,这一次我们需要 fromimport 两个关键字来配合了;当这两个关键字配合起来之后,就可以通过某个包找到对应的模块。接下来 我们看一下 from...import... 的用法

\# 用法:
from package import module

# 参数:
# package:要导入的包名
# module:包中的目标模块

# from package import module 的意思就是 从当前的包中导入某个模块


# 示例如下:

from animal import dog
dog.run()

# 通过 from ... import ... 直接找到了 dog 模块
# 所以只需要使用 dog 模块 直接用 . 的方式找到里面的 run 方法就可以执行了

接下来我们尝试 参照上文的 animal 包 导入 dog 的子包 调用里面的 run 函数,内容如下:

导入子包及子包函数的调用

这里我们发现了一个问题,两个子包下面都有 action 模块,当我们分别 导入调用的时候会被覆盖,有没有什么办法让我们同时导入两个子包的 action 模块,分别可以调用但是互不影响呢?这就需要借助到我们的as 关键字 了。 在我们学习异常的时候,利用 as 关键字 关键字将捕获的异常进行一个起别名的操作,在这里我们依然可以对我们导入的模块起别名。如下图

现在我们是直接通过导入模块来调用 action 模块下的函数,那可不可以直接调用函数来使用的呢?尝试一下:

导入主包及主包的函数调用

首先我们在主包 animal 的子包同级路径下创建一个 main.py 文件,并定义一个 main 函数,然后再进行调用。内容如下:

\# coding:utf-8


def animal():
    return '这是一个 animal 包下子包同级路径下的模块的函数'

然后我们调用该 main.py 文件的 animal 函数

导入的包与子包模块之间过长如何优化

我们来看一下 导入 animal 包下 cat 子包 的 action 模块的 eat() 函数的导入

前文我们提到过 import 只会拿到当前对应包下的 __init__.py 中的功能或当前模块下的功能 ,那么我们是否可以把 cat 与 dog 子包中的函数导入到 animal 包下的 __init__.py ?

接下来 我们尝试一下 在 animal 包 同级别下创建一个 animal_test.py 文件,然后在 animal_test.py 文件内导入 子包获取其函数。

注意:这里的 animal_test.py 脚本 需要与 animal 包处于同一级别的文件加下,才可以导入我们定义好的 __init__.py 文件的函数功能;如果不在同一个文件的级别下,导入是不成功的,大家可以自己手动试一下。

强大的第三方包

上面我们学习了什么是 python 的包,以及如何创建一个包,并通过导入的方法使用我们的包与模块。在上面对包的使用相当于是我们自己开发自己使用,属于一种自产自销的模式。而接下来我们要学习使用他人开发好的第三方包来帮助我们高效的工作,学完这一小章节我们就可以从浩瀚的第三方包选择我们需要的包来帮助我们自己完成我们想要的功能。

比如爬虫的包可以帮助我们爬取图片、文章等各种我们想要的数据;绘图的包可以帮我们对各种图片进行处理…

什么是第三方包

其实第三方包就是其他程序员公开到 Python 指定网站上写好的功能封装成包或者模块,方便其他程序员方便下载和使用。

使用第三方包最大的好处就是我们想要实现的功能可能别人已经帮助我们写好了,我们只需要拿来主义,直接应用在我们自己的代码中就可以了,这样自然就大大的提高了我们的开发效率

如何安装第三方包

了解了第三方包之后,我们需要去下载并安装他们才可以在我们的代码中使用。而 pip 与 easy_install就是获取第三方包的工具,在我们安装好python 的时候,pip 就已经自动安装好了,我们只需要在 Terminal 终端 去使用即可;

随着 python 的发展越来越快,pip 的使用率也越来越高,就逐渐的替代了 easy_install 。

我们刚刚说的 在我们安装好 python 的时候,就自动的安装了 pip 其实是有版本限制的,在 Python 3.4 版本之前是不会安装 pip 的; Python 3.4 版本之后,会自带这两种包管理工具。

如果使用的是 老版本的 python ,可以通过 https://pip.pypa.io/en/stable/installing/ 去下载安装 pip

由于 pip 管理工具中的第三方包要比 easy_install 多很多,所以我们主要介绍 pip 的使用。pip 的用法也是非常简单的,我们只需要在 Terminal 终端,输入 pip install 包名 就可以进行下载并安装。

这里也推荐大家一个 python 程序员的宝藏网站,github.com 搜索 python 第三方包 (github 会伴随程序员的完整职业生涯);在 github 有很多程序员公开出来的第三方包,自然也有 python 的。需要注意的是 github 是一个国外的网站,所以访问的有点慢,大家可以 kexueshangwang 。或者也可以临时使用 国内的镜像源地址 ,在下方的 pip 安装拓展 小节有介绍。

pip 安装 第三包

\# 查询当前 pip 版本:
pip -V

# 执行结果如下:
# pip 21.1.2 from D:\\PycharmProjects\\XXXXX\\XXXXX\\venv\\lib\\site-packages\\pip (python 3.10)

PS:每一个版本的 python 都有自己的 pip ,所以当我们安装了多个版本的 python 后,犹豫 python 版本太多,所以如果我们使用错了 pip ,就会造成我们有的时候看着像是已经安装好了第三方包,但却无法使用的情况。所以这个地方是一定要注意的!!!

安装第一个第三方包工具 - ipython

接下来我们就尝试一下安装我们第一个第三方包 - ipython;

ipython 是一个 python 的交互式 shell ,比默认的 python shell 好用很多,支持变量自动补全,自动缩进。

在 Terminal 终端,输入 pip install ipython ,如果报错:WARNING: You are using pip version 21.1.2; however, version 22.0.4 is available. 可以通过 kexueshangwang 的方式安装、或 临时使用国内镜像源地址、再或者 升级 你的 pip ;升级 命令 python -m pip install --upgrade pip

这里看到,我们安装失败了;利用我们上面说的方法 kexueshangwang 的方式们再次安装

当看到 Successfully 则表示我们已经安装成功了,虽然仍提示 WARNING 让我们升级 pip ,但是我们依然安装成功。试试看 ipython 是否可以正常使用。

通过与 python 自带的 shell 终端相比, ipython 不仅交互更方便,还可以自动支持变量自动补全,自动缩进。凸显了极大的人性化的便捷性。

这里还有个需要注意的地方,当我们的环境安装了 多个版本的 python 时,一定要检查我们安装的路径对不对,否则就会出现安装到其他版本 python 的 情况。如下图:

当然了如果默认是进入我们其他版本的 python 或者 ipython 我们可以通过 python3 或者 ipython3 的命令进入到我想要进去的版本的交互终端。

注意:在我们平时执行一个脚本的时候,我们还是推荐使用 python 解释器,ipython 只是作为我们的一个调试环境使用。

pip 安装拓展

实际上我们安装 pip 和 第三方包 是有选择的,默认情况下选择的是国外的地址去下载并安装,由于网络与距离的原因往往会很慢,同时因为网络波动问题会造成我们安装失败的情况。

在这种情况下,我们国内就推出了一写可以就近进行下载和安装的地址,比如我们的 清华、阿里云、中国科技大学、华中理工大学等都提供了近源地址。如下:

\# 官方源地址
# https://pypi.python.org/simple/
# https://pypi.tuna.tsinghua.edu.cn/simple/

# 国内源地址
# 阿里云:http://mirrors.aliyun.com/pypi/simple/ 
# 中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
# 豆瓣:http://pypi.douban.com/simple/
# 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
# 中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/

# 使用方法如下:

pip install -i http://pypi.douban.com/simple/ ipython
pip install -i http://pypi.douban.com/simple/ ipython==7.12.0   # 指定版本号安装

pip 安装第三方包的卸载

既然可以安装,那就肯定可以卸载。卸载方法如下:

\# 卸载方法:

pip uninstall ipython

# 这里同样需要注意,被卸载的第三方包对应的 python 解释器版本的问题。

总结

本文主要介绍了什么是包,什么是模块。如何导入包、模块,导入子包、主包如何调用他们的函数。最后又讲述了如何安装、使用、卸载第三方包。


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/205332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[pyqt5]PyQt5之如何设置QWidget窗口背景图片问题

目录 PyQt5设置QWidget窗口背景图片 QWidget 添加背景图片问题QSS 背景图样式区别PyQt设置窗口背景图像,以及图像自适应窗口大小变化 总结 PyQt5设置QWidget窗口背景图片 QWidget 添加背景图片问题 QWidget 创建的窗口有时并不能直接用 setStyleSheet 设置窗口部分…

2023.11.27 使用anoconda搭建tensorflow环境

2023.11.27 使用anoconda搭建tensorflow环境 提供一个简便安装tensorflow的方法 1. 首先安装anoconda,安装过程略,注意安装的时候勾选安装anoconda prompt 2. 进入anoconda prompt 3. 建立python版本 conda create -n tensorflow1 python3.84. 激活t…

Java开发规范(简洁明了)

本篇规范基于阿里巴巴开发手册,总结了一些主要的开发规范,希望对大家有帮助。 目录 1. 命名规范: 2. 缩进和空格: 3. 花括号: 4. 注释: 5. 空行: 6. 导入语句: 7. 异常处理&a…

源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。yum install mysql-server --nogpgcheck

电子商务网站的技术 SEO:完整指南

技术 SEO 涉及对您的网站进行更改,这些更改由搜索引擎蜘蛛读取并由搜索结果索引。它简化了搜索引擎读取您网站的方式。如果不包括技术 SEO 服务,你就不可能有一个成功的电子商务 SEO 计划。主要目标是增强网站的框架。 在线商店的技术搜索引擎优化建议 …

熟悉SVN基本操作-(SVN相关介绍使用以及冲突解决)

一、SVN相关介绍 1、SVN是什么? 代码版本管理工具它能记住你每次的修改查看所有的修改记录恢复到任何历史版本恢复已经删除的文件 2、SVN跟Git比,有什么优势 使用简单,上手快目录级权限控制,企业安全必备子目录checkout,减少…

Redis应用的16个场景

常见的16种应用场景: 缓存、数据共享分布式、分布式锁、全局 ID、计数器、限流、位统计、购物车、用户消息时间线 timeline、消息队列、抽奖、点赞、签到、打卡、商品标签、商品筛选、用户关注、推荐模型、排行榜. 1、缓存 String类型 例如:热点数据缓存&#x…

【驱动】SPI驱动分析(四)-关键API解析

关键API 设备树 设备树解析 我们以Firefly 的SPI demo 分析下dts中对spi的描述&#xff1a; /* Firefly SPI demo */ &spi1 {spi_demo: spi-demo00{status "okay";compatible "firefly,rk3399-spi";reg <0x00>;spi-max-frequency <48…

C#工程中Form_xx.cs不能在设计器中查看

环境&#xff1a;VS2022 直接上图&#xff1a; 原因&#xff1a; 写了个类在Form_xx.cs中从For继承的部分类之前&#xff0c;移动到之后&#xff0c;保证窗体类是代码中的首个类即可&#xff0c;如图&#xff1a;

python pytorch实现RNN,LSTM,GRU,文本情感分类

python pytorch实现RNN,LSTM&#xff0c;GRU&#xff0c;文本情感分类 数据集格式&#xff1a; 有需要的可以联系我 实现步骤就是&#xff1a; 1.先对句子进行分词并构建词表 2.生成word2id 3.构建模型 4.训练模型 5.测试模型 代码如下&#xff1a; import pandas as pd im…

【强迫症患者必备】SpringBoot项目中Mybatis使用mybatis-redis开启三级缓存必须创建redis.properties优化方案

springboot项目中mybatis使用mybatis-redis开启三级缓存需要创建redis.properties优化方案 前言下载mybatis-redis源码分析RedisCache 代码RedisConfigurationBuilder的parseConfiguration方法 优化改造1.创建JedisConfig类2.复制RedisCache代码创建自定义的MyRedisCache3.指定…

INA219电流感应芯片_程序代码

详细跳转借鉴链接INA219例程此处进行总结 简单介绍一下 INA219&#xff1a; 1、 输入脚电压可以从 0V~26V,INA219 采用 3.3V/5V 供电. 2、 能够检测电流&#xff0c;电压和功率&#xff0c;INA219 内置基准器和乘法器使之能够直接以 A 为单位 读出电流值。 3、 16 位可编程地…

计算机体系结构----流水线技术(三)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。绝大部分资料来自----计算机系统结构教程(第二版)张晨曦等 计算机体系结构----流水线技术&#xff08;三&#xff09; 3.1 流水线的基本概念3.1.1 什么是流水线3.1.2 流水线的分类1. 部件级流水线、处理机级流…

DCAMnet网络复现与讲解

距论文阅读完毕已经过了整整一周多。。。终于抽出时间来写这篇辣&#xff01;~ 论文阅读笔记放这里&#xff1a; 基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net&#xff08;论文阅读笔记&#xff09;-CSDN博客 为了方便观看&#xff0c;我把结构图也拿过来了。…

Unity 一些常用注解

在Unity中有一些比较常用的注解&#xff1a; 1、[SerializeField]&#xff1a;将私有字段或属性显示在 Unity 编辑器中&#xff0c;使其可以在 Inspector 窗口中进行编辑。 2、[Range(min, max)]&#xff1a;限制数值字段或属性的范围&#xff0c;在 Inspector 窗口中以滑动条…

【合集】MQ消息队列——Message Queue消息队列的合集文章 RabbitMQ入门到使用

前言 RabbitMQ作为一款常用的消息中间件&#xff0c;在微服务项目中得到大量应用&#xff0c;其本身是微服务中的重点和难点。本篇博客是Message Queue相关的学习博客文章的合集篇&#xff0c;目前主要是RabbitMQ入门到使用文章&#xff0c;后续会扩展其他MQ。 目录 前言一、R…

中国毫米波雷达产业分析3——毫米波雷达市场分析(四、五、六)

四、康养雷达市场 &#xff08;一&#xff09;市场背景 1、政府出台系列政策提升智慧健康养老产品供给和应用 康养雷达是一种以老年人为主要监测对象&#xff0c;可以实现人体感应探测、跌倒检测报警、睡眠呼吸心率监测等重要养老监护功能的新型智慧健康养老产品。 随着我国经…

C#常见的设计模式-创建型模式

引言 在软件开发过程中&#xff0c;设计模式是一种被广泛采用的思想和实践&#xff0c;可以提供一种标准化的解决方案&#xff0c;以解决特定问题。设计模式分为三种类型&#xff1a;创建型模式、结构型模式和行为型模式。本篇文章将重点介绍C#中常见的创建型模式。 目录 引言…

【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

文章目录 行为型模式1、模板方法模式&#xff08;1&#xff09;概述&#xff08;2&#xff09;结构&#xff08;3&#xff09;案例实现&#xff08;4&#xff09;优缺点&#xff08;5&#xff09;适用场景&#xff08;6&#xff09;JDK源码解析&#xff08;7&#xff09;模板方…

1-3、DOSBox环境搭建

语雀原文链接 文章目录 1、安装DOSBox2、Debug进入Debugrdeautq 1、安装DOSBox 官网下载下载地址&#xff1a;https://www.dosbox.com/download.php?main1此处直接下载这个附件&#xff08;内部有8086的DEBUG.EXE环境&#xff09;8086汇编工作环境.rar执行安装DOSBox0.74-wi…