Python module的重新加载

pyDevconsole很好用,可以实时调试写的Python代码。但有个问题,发现代码问题,修改后无法重新加载。笨的方法就是关掉pyDev console,再重新打开。还好Python提供了reload函数,可以用来加载module。下面是自己写的2个简单的重新加载方法,通过类名(或对象)加载其所在的module,或通过module名加载:

def reload_by_class(clazz):
    try:
        module_name = clazz.__module__
        reload_by_module_name(module_name)
    except AttributeError:
        print('parameter must be class or object')

def reload_by_module_name(module_name):
    try:
        module =  sys.modules[module_name]
        reload(module)
        __import__(module_name)
    except KeyError:
        print('the module is not imported')
    except:
        print('reload failure')

 这里要注意,重新加载后:

1)需要重新import,才会使用新加载的module,否则依然使用原先的module

2)对新生成的对象有效,重新加载之前的对象保持不变。

下面是一个使用的例子:


1n刚开始del_note()输出的提示没有感叹号

2)修改代码,提示信息加上感叹号

3)再执行del_note(),输出的提示还是没有感叹号

4reload_by_class()重新加载module

5)新建n2对象,执行del_note(),输出的提示还是没有感叹号

6)重新import

7)新建n3对象,执行del_note(),输出的提示有感叹号了

android6 usb默认文件管理,不弹RSA配对提示框 本文修改针对 高通 Android6.0.1 出user版本时 https://www.cnblogs.com/Jokeyyu/p/7424262.html http://blog.csdn.net/sinc00/article/details/44957943 diff --git a/frameworks/base/packages/SystemUI/src/com/android... 阅读详情

相关推荐

数学与纳米技术:微观世界的数学描述

《数学与纳米技术:微观世界的数学描述》 关键词:纳米技术、数学模型、微观世界、物理现象、计算模拟 摘要:本文探讨了数学在纳米技术领域的应用,从数学基础回顾、纳米技术引论,到物理现象与

AI天才研究院 1503

深入解析Python模块重载:reload()函数全攻略

更多Python学习内容:ipengtao.com在开发和调试Python代码时,经常需要修改模块并立即测试这些修改效果。通常情况下,Python会缓存已导入的模块,以提高性能。然而,这也意味着一旦模块被导入后,对其进行的修改将不会在当前会话中生效。为了使修改立即生效,Python提供了reload()函数。本文将详细介绍reload()函数的应用,包含其用法、限制和最佳实践,并通过示例代码展示其...

涛哥聊Python 2414

【重磅,更新!】标书范本(2007-2017年33份)和国自然地学部立项名单(2022-2023年)

1、资源内容地址:https://blog.csdn.net/abc6838/article/details/1438823792、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题3、适用对象:大学生,本科生,研究生小白可用,容易上手!!!4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理

python插件式开发中使用reload_pythonreload(module)的用法示例详解

前言本文主要给大家介绍了关于pythonreload(module)用法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1、Python2中可以和Python3中关于reload()用法的区别。Python2 中可以直接使用reload(module)重载模块。Pyhton3中需要使用如下方式:(1)>>> from imp>>> ...

weixin_39970855的博客 263

pythonmodule用法_pythonreload(module)的用法示例详解

python3中怎么用reload一旦有人让你依赖,便会有所期待,所以有时一个人未必不好。importsysreload(sys)sys.setdefaultencoding("utf-8")这个是针对python2的代码。菜鸟分享问,python语言中'__module__'的作用是什么首先python语言的基本组织单位是模块,不像Java是一类一文件,python的类、函数都在模块里面,当通过...

weixin_34997870的博客 454

python重新加载模块的方法有哪些

Python如何重新加载模块?Python教程(http://www.maiziedu.com/course/python/)中重新加载模块的方法有哪些呢?在python开发中,我们为了防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,可以在开发时,我们会需要重新导入模块,那么怎么办呢,下面一起看看python重新加载模块的几种方法吧: Python2.7可以直接用reload

qq_32506555的博客 570

import,reload,__import__在python中的区别

import 作用: 导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录。 e.g: import module_name[,module1,...] from module import *|child[,child1,...]说明: 多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境。 测

上帝De助手 5万+

python中,reload重新加载module

一般来说用一下代码就可reload你的module from importlib import reload reload(YourModule) 如果你开始写的是下面的,想重新加载, from YourModule import * 需要用下面几句: 1 import YourModule # to get a module object 2...

weixin_30925411的博客 423

python 如何重新加载有修改过的模块(module)

Python 程序的时候,一边写模块一边调试。调试是在 Python 自身的命令行终端进行的。但当对模块里的代码进行修改后,在原调试终端上执行到模块中新修改上去的内容。 我之前是一直用退出再重新进入调试环境的方式,后面百度了下,找到了个更好的办法,重新加载函数reload()可以重新加载模块的。比如: 这样就可以修改并重新加载重新调试了。另外需要说明的是,如果有依赖的模块也修改了,记得先...

weixin_30834783的博客 561

python重新导入模块_如何重新加载使用`from module import *`导入的python模块

如何重新加载使用`from module import *`导入的python模块在这个有用的问答中,我看到可以使用from whatever_module import *,或者在Python 3中可以使用whatever_module。我的问题是,如果我说过from whatever_module import *要导入怎么办? 那么当我使用reload()时,我没有whatever_modu...

weixin_39986896的博客 351

python自动加载模块_Python自动重新加载模块(autoreload module

守护进程模式使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦。看了一下Python开源的Web框架(Django、Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist code)如...

weixin_39926040的博客 379

python 自动加载_Python自动重新加载模块(autoreload module

守护进程模式使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦。看了一下Python开源的Web框架(Django、Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist code)如...

weixin_39624700的博客 417

python 自动加载_Python自动重新加载模块详解(autoreload module)

守护进程模式使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦。看了一下Python开源的Web框架(Django、Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist code)如...

weixin_40008135的博客 520

python加载模块原理-Python自动重新加载模块详解(autoreload module)

守护进程模式使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦。看了一下Python开源的Web框架(Django、Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist code)如...

weixin_39727976的博客 596

Python自动重新加载模块(autoreload module

守护进程模式   使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦。看了一下Python开源的Web框架(Django、Flask等)都有自己的自动加载模块功能(autoreload.py),都是通过subprocess模式创建子进程,主进程作为守护进程,子进程中一个线程负责检测文件是否发生变化,如果发生变化则退出,主进程检查子进程的退出码(exist co...

weixin_34014555的博客 1634

python怎么重新编辑_python 如何重新加载有修改过的模块(module)

JavaScript易错知识点整理前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...http基础实战1.需求 了解http的基础知识,能看懂chrome下网络的情况 2.前置知识 下面是tcp/ip协议的一些东西,今天就只用了解应用层的htt...

weixin_39842682的博客 246

python笔记73-动态导入模块import_module 和 重载reload

前言 python动态加载import_module 和 重载reload 的使用 python环境:V3.6.x import_module 当我们在运行一段程序,根据需要动态加载一个模块,调用里面的方法时,除了平台使用的import module,也可以在代码里面用到import_module方法。 比如我有个模块 yoyo.py,里面写了个函数 def fun1(): return "hello world" def fun2(): return "上海-悠悠" a.py 需要加

qq_27371025的博客 2281

Pythonreload一个文件时报错 ( reload() argument must be module

最近,在用reload()引入一个文件时报如题的错误:(可能仅限于直接在Python自带命令行中出现问题) 现在解决方案有两种: 1、 from imp import reload import trees    (trees为文件名,注意这里不需要跟后缀名)  reload(trees) 2、 import sys sys.path.append("program/")

waveclouds的博客 5427

python reload() 重载,重新加载模块

# python2 内置函数 reload(module) # python3 from imp import reload reload(module) 说明: module 必须是已经成功导入的模块 模块被加载到内存以后,更改文件内容,已经运行的程序不会生效的,可通过reload重新加载。 导入是一个开销很大的操作。 ...

_Tsun 的博客 7041

QT5.13生成带图标的exe执行文件(window)

一,在.pro文件中增加RC_ICONS = myappico.ico 二,将myappico.ico放入源码文件路径中,编译,就能生产带图标的exe执行文件了

Gavin的博客 381

python模块,reload所有模块以及坑

from imp import reload selfModule = sys.modules['__main__'] #获取自身模块当reload(X)时,只会重载X模块,X模块导入其他模块并不会重新导入,只会获取其他模块对象;因此想要reload全部模块的话 ,需要使用到模块对象的__dict__ , type() 函数:import types from imp import reload ...

x 5980
上一篇: Duck typing
下一篇: XA和分布式事务处理
ruby_beginner
博客等级 码龄21年 9粉丝 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值