广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 重新加载模块
  • 227
分享到

Python 重新加载模块

模块加载Python 2023-01-31 08:01:26 227人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

在进行模块化编程时,经常会遇到这样一种场景: 编写了一个 python 模块,并用 import my_module 的形式进行导入。当对该模块进行更改后,即使重新导入,其中的任何改变都不会被识别,这使得模块调试变得非常困难。

在进行模块化编程时,经常会遇到这样一种场景:

编写了一个 python 模块,并用 import my_module 的形式进行导入。当对该模块进行更改后,即使重新导入,其中的任何改变都不会被识别,这使得模块调试变得非常困难。

那么,该如何解决这个问题?

| 版权声明:一去、二三里,未经博主允许不得转载。

出于效率原因(导入必须找到文件,将其编译成字节码,并且运行代码),Python shell 在每次会话中,只对每个模块导入一次。

例如,有一个名为 hello.py 的模块,包含以下代码:

print('Hello, Python!')

如果多次导入,会出现什么效果?

>>> import hello
Hello, Python!
>>> 
>>> import hello
>>> import hello

可以看到,代码只执行了一次。也就是说,模块仅被导入了一次。

倘若,更改了已经在 Python shell 中导入的模块,然后重新导入该模块,Python 会认为“我已经导入了该模块,不需要再次读取该文件”,所以更改将无效。

要解决这个问题,有以下几种方式:

  1. 最简单、最有效的方法:重新启动 Python shell。但是,这也有缺点,特别是丢失了 Python shell 名称空间中存在的数据以及其他导入模块中的数据。
  2. 对于简单的情况,可以使用 Python 的 reload() 函数。在许多情况下,在编辑一个模块之后就足够了。
  3. 对于更复杂的情况,重新加载被编辑的模块也需要重新加载其依赖/导入的模块(因为它们必须作为被编辑模块初始化的一部分进行初始化),所以 IPython 的 autoreload 扩展很有用。

PS: 下面主要介绍第 2 种方式 - reload(),其他方式自行尝试。

reload() 是 Python 提供的一种简洁的方式,在不同的 Python 版本中有不同的表现形式:

  • 在 Python 2.x 中,reload() 是内置函数。
  • 在 Python 3.0 - 3.3 中,可以使用 imp.reload(module)。
  • 在 Python 3.4 中,imp 已经被废弃,取而代之的是 importlib。
>>> import importlib
>>> import hello
Hello, Python!  # 修改前的内容
>>> 
>>> importlib.reload(hello)
I am coming...  # 修改后的内容
<module 'hello' from '/home/wang/Projects/hello.py'>

--结束END--

本文标题: Python 重新加载模块

本文链接: https://www.lsjlt.com/news/192755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 重新加载模块
    在进行模块化编程时,经常会遇到这样一种场景: 编写了一个 Python 模块,并用 import my_module 的形式进行导入。当对该模块进行更改后,即使重新导入,其中的任何改变都不会被识别,这使得模块调试变得非常困难。...
    99+
    2023-01-31
    模块 加载 Python
  • Python重新加载模块方法
    为防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,如果需要重新导入模块,Python2.7可以直接用reload(),Python3可以用下面几种方法: 方法一:基本方法from imp import reloadre...
    99+
    2023-01-31
    模块 加载 方法
  • Python如何实现模块和加载模块
    这篇文章主要介绍Python如何实现模块和加载模块,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入...
    99+
    2023-06-08
  • python 模块重载的五种方法
    目录环境准备禁止重复导入重载模块方法一重载模块方法二重载模块方法三重载模块方法四重载模块方法五环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ ...
    99+
    2022-11-12
  • Python中怎么实现模块重载
    本篇文章为大家展示了Python中怎么实现模块重载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。环境准备新建一个 foo 文件夹,其下包含一个 bar.py 文件$ tree f...
    99+
    2023-06-16
  • python动态加载模块、类、函数
    动态加载模块: 方式1:系统函数__import__() 方式2:imp, importlib 模块 方式3:exec 函数 动态加载类和函数 首先,使用加载模块,使用内置函数提供的反射方法getattr(),依次按照层级...
    99+
    2023-01-31
    函数 模块 加载
  • python加密模块-hashlib模块
    hashlib模块 用于加密相关的操作,3.X里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 (sha比md5 更复杂、md5 不能反解) 具体应用:用于网站防篡改。具...
    99+
    2023-01-31
    模块 python hashlib
  • python中有哪些模块重载的方法
    本篇文章为大家展示了python中有哪些模块重载的方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pil...
    99+
    2023-06-14
  • 关于python中模块和重载的问题
    目录模块和重载模块与命名空间模块和重载 简单来讲,任意一个以.py结尾的python文件都是一个模块。例如有A.py和B.py两个文件。在A中可以通过导入B来读取B模块定义的内容,导...
    99+
    2022-11-12
  • python 卸载模块
    在安装python模块的时候,可以执行python setup.py install 进行安装,但发现没有卸载的命令。只能手动删除安装到系统中的文件,但这么多文件,总不能一个一个的删除吧。下面就是删除方法:在安装的时候,记录一下安装的文件我...
    99+
    2023-01-31
    模块 python
  • Node.js模块加载详解
    JavaScript是世界上使用频率最高的编程语言之一,它是Web世界的通用语言,被所有浏览器所使用。JavaScript的诞生要追溯到Netscape那个时代,它的核心内容被仓促的开发出来,用以对抗Mic...
    99+
    2022-06-04
    详解 模块 加载
  • pycharm如何加载模块
    要在PyCharm中加载模块,可以按照以下步骤操作:1. 打开PyCharm,并打开您的Python项目。2. 在项目文件夹中创建一...
    99+
    2023-08-15
    pycharm
  • 如何使用Python加载npm和git模块?
    Python作为一种高效、易用、灵活的编程语言,已经成为了众多开发者的首选。在很多项目中,我们需要用到npm和git这两个模块,而Python作为一种多功能的语言,也可以轻松地加载这些模块。本文将会介绍如何使用Python加载npm和git...
    99+
    2023-07-24
    load npm git
  • springboot实现多模块项目添加一新模块
    目录springboot多模块项目添加一新模块springboot添加新模块的方法springboot项目基本结构如图一、选择file->projectstructure文件-...
    99+
    2022-11-13
  • OrchardCore 如何动态加载模块
    这篇文章主要讲解了“OrchardCore 如何动态加载模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OrchardCore 如何动态加载模块”吧!Or...
    99+
    2022-10-19
  • ubuntu如何禁止模块加载
    ubuntu禁止模块加载的示例:例如禁止PHP模块,通过终端命令行实现。使用phpdismod命令从系统中禁用任何不必要的php模块。$ phpdismod mbstring //对所有PHP版本和所有SAPI禁用mbstring模块。禁用...
    99+
    2022-10-21
  • bootstrapTable怎么重新加载数据
    这篇文章将为大家详细讲解有关bootstrapTable怎么重新加载数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目中使用到了bootstrapTable , 根据条件查询数据,重新加载列表,有几种...
    99+
    2023-06-15
  • python怎么下载模块
    这篇文章主要介绍了python怎么下载模块,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3...
    99+
    2023-06-14
  • Angular中NgModule模块和延迟加载模块的用法
    这篇文章主要介绍“Angular中NgModule模块和延迟加载模块的用法”,在日常操作中,相信很多人在Angular中NgModule模块和延迟加载模块的用法问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2022-10-19
  • 如何在Django容器中快速加载Python模块?
    Django是一种流行的Web框架,它能够让Python开发者轻松地构建Web应用程序。然而,在使用Django构建应用程序时,有时需要加载许多Python模块,这可能会导致加载时间变慢,从而影响应用程序的性能。在本文中,我们将介绍如何在D...
    99+
    2023-08-24
    容器 load django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作