python系列教程229——reload重载

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写(有时候有空也会参与编写),所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

Python默认只导入模块一次。如果要强制使模块代码重新载入并重新运行,你得刻意要求Python这么做,也就是调用reload内置函数。

为什么要这么麻烦去重载模块?reload函数可以修改程序的一些部分,而无须停止整个程序。例如,必须在启动时通过网络连接服务器的系统,就是动态重载的一个非常重要的应用场景。因为联网可能会让用户等待一小会,用户体验不好。又例如,Python通常作为较大系统的定制语言:用户可以在系统运作时通过编写Python程序定制产品。当然,并非所有系统都需要这种动态的实现,但对那些需要的系统而言,模块重载就提供了一种易于使用的动态定制工具。

下面通过一个例子帮助大家学习reload重载。在下面这个例子中,我们要修改并重载一个模块文件,但是不会中止交互模式的Python会话。首先,在文本编辑器中,编写一个名为changer.py的模块文件,其内容如下。

message = "First version"

def printer():

    print(message)

下面导入并使用该模块。

% python

>>>import changer

>>>changer.printer()

First version

不要关掉这个交互式对话窗口,现在,在另一个窗口中编辑该模块文件。改变message变量和printer函数体:

message = "After editing"

def printer():

print('reloaded:',message)

然后,回到Python交互式窗口,重载该模块从而获得新的代码。注意下面再次导入该模块并没有效果。我们得到原始的message,即使文件已经修改过了。我们得调用reload,才能够获取新的版本。

...back to the Python interpreter/program...




>>>import changer

>>>changer.printer()         # No effect: uses loaded module

First version

>>>from imp import reload

>>>reload(changer)           # Forces new code to load/run

<module 'changer' from 'changer.py'>

>>>changer.printer()         # Runs the new version now

reloaded: After editing

点赞,收藏,谢谢!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值