热加载技术:修改Python代码并实时查看结果 ⛵

💡 作者:韩信子@ShowMeAI
📘 Python3◉技能提升系列https://www.showmeai.tech/tutorials/56
📘 本文地址https://www.showmeai.tech/article-detail/406
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏ShowMeAI查看更多精彩内容

💡 引言

在运行 Python 脚本时,我经常发现自己忘记打印所有必要的详细信息来跟踪代码项目的进度和中间信息。我们经常在训练机器学习模型时遇到各种各样的信息记录问题,当然,问题不仅限于机器学习,像爬虫等场景也需要做大量记录,但我们经常在运行起代码之后才意识到忘记做一些需要记录的信息输出。

如果我们暂停运行的代码,重新修改补充代码并运行,代价可能是我们已经训练数个小时的模型参数被舍弃而重新训练,这是非常不值当的。在python中,有另外一项技术可以解决这个问题,在本篇内容中,我们就来给大家讲讲python的热加载技术。

💡 Reloading库

📘Reloading; 是一个 Python工具库,它让我们可以在每次迭代之前从源代码中重新加载(或函数),我们可以修改已经运行的代码并向其添加更多详细信息,而不会丢失任何当前已执行过程。

我们可以通过以下命令安装reloading:

pip install reloading

💦 重新加载循环体代码

假设我们有一个循环,它完成一个简单的功能:每次迭代后将值减半。但我们忘记在这个循环中打印迭代次数了,现在想修改它。

from time import sleep

value = 100
iterations = 10

for iteration in range(iterations):

    print(f"value = {value}")
    value = value/2
    sleep(2)

不借助 reloading,我们只能重新运行它。

但是,借助 reloading,我们可以重新加载循环体代码,如下所示:

from time import sleep
from reloading import reloading

value = 100
iterations = 10

for iteration in reloading(range(iterations)):

    print(f"value = {value}")
    value = value/2
    sleep(2)

动图演示如下:

💦 重新加载修改后的函数

与重新加载循环体代码类似,我们也可以在每次迭代后重新加载函数体。以函数 half_value为例:

from time import sleep

def half_value(value):
    print(f"value = {value}")
    value = value/2
    return value

value = 100
iterations = 10

for iteration in range(iterations):

    value = half_value(value)
    sleep(2)

要重新加载函数体,我们可以使用 reloading构建装饰器。如下所示:

from time import sleep
from reloading import reloading

@reloading
def half_value(value):
    print(f"value = {value}")
    value = value/2
    return value

value = 100
iterations = 10

for iteration in range(iterations):

    value = half_value(value)
    sleep(2)

修改之后,我们可以在运行时修改函数。动图演示如下:

参考资料

推荐阅读

热加载技术:修改Python代码并实时查看结果 ⛵

Original: https://www.cnblogs.com/showmeai/p/16978265.html
Author: ShowMeAI
Title: 热加载技术:修改Python代码并实时查看结果 ⛵

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/808150/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pygame插件安装及Pycharm导入

    昨天在搞python小游戏的时候导入pygame插件时遇到了一些困难,特此总结一下~ 希望可以给大家提供一些参考~1、先看自己有没有安装pip打开cmd,输入以下命令: pip l…

    Python 2023年9月19日
    055
  • Python实用技术二:数据分析和可视化

    目录 一,多维数组库numpy 1,操作函数:​ 2,numpy数组元素增删 1)添加数组元素 2)numpy删除数组元素 3)在numpy数组中查找元素 4)numpy数组的数学…

    Python 2023年8月25日
    051
  • 保姆级–Ubuntu 安装Django并简单应用第一个项目

    一 虚拟机创建Ubuntu 准备 一台正常的电脑已经安装的Oracle VM VirtualBox虚拟机软件 (版本随意)已经下载好的Ubuntu系统镜像 (这里演示最新版,按需下…

    Python 2023年8月6日
    045
  • 2021 年年度最佳开源软件

    Svelte https://svelte.dev/ Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte…

    Python 2023年10月7日
    050
  • 我面试的人成了我的领导,我该不该离职?

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。 有一次领导让我参加面试,被面的岗位是技术总监。不知道为什么,每…

    Python 2023年10月21日
    054
  • pandas基本功能 – 汇总和计算描述统计

    文章目录 * – 1.1 常用的数学和统计方法 – 1.2 相关系数与协方差 – + 1.2.1 指定轴计算相关值 – 1.3 唯一…

    Python 2023年8月21日
    050
  • python学习:各种推导式玩法-推导式套路

    除了最简单的列表推导式和生成器表达式,其实还有字典推导式、集合推导式等等。 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。 variable = [out_ex…

    Python 2023年6月9日
    054
  • pytest+selenium+allure Webui自动化简易框架

    pytest+selenium+allure Webui自动化简易框架 介绍 * 软件架构 依赖安装 目录结构 case文件中demo yml文件格式 webdriver封装 fu…

    Python 2023年9月13日
    067
  • 第二章 数据解析

    第二章 数据解析 2.1 re 解析 2.1.1 re解析 Regular Expression, 正则表达式, ⼀种使⽤表达式的⽅式对字符串 进⾏匹配的语法规则。 正则的语法: …

    Python 2023年6月11日
    068
  • pytest入门教程

    快速入门以及怎么使用 在这里不做过多介绍,大家直接去看原文即可。 怎么测试异常 为了测试Exception,可以使用pytest.raises()方法 def f(): raise…

    Python 2023年9月11日
    043
  • Python基于PC版微信实现机器人

    在 github中有基于 web版的微信实现的实时收发消息 api, python调用起来非常简单。但是目前来说,大部分的用户没法登录 web版的微信,因此也就没法使用。 今天我们…

    Python 2023年8月9日
    050
  • Python学习: 网络请求模块 urllib 、requests

    Python 网络请求模块 urllib 、requests Python 给人的印象是抓取网页非常方便,提供这种生产力的,主要依靠的就是 urllib、requests这两个模块…

    Python 2023年10月31日
    043
  • pytest测试框架

    在模块中运行测试 pytest test_mod.py 在目录中运行测试 pytest testing/ 通过关键字表达式运行测试 pytest -k "MyClass …

    Python 2023年9月13日
    028
  • 正则表达式

    文章目录 一、正则初体验 二、匹配规则 三、字符串方法的使用 ; 一、正则初体验 正则表达式是特殊的字符序列,利用事先定义好的特定字符以及他们的组合组成了一个规则,然后检查一个字符…

    Python 2023年9月30日
    059
  • 员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    Python 2023年10月25日
    033
  • 精准营销!用机器学习完成客户分群!⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    Python 2023年10月24日
    053
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球