`
nelson_tu
  • 浏览: 39366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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(),输出的提示有感叹号了

  • 大小: 38.8 KB
分享到:
评论

相关推荐

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

    ### Python自动重新加载模块详解(autoreload module) 在Python开发过程中,特别是在构建Web应用程序时,频繁地修改代码是常见的操作。通常情况下,当我们修改了某个模块后,需要重启整个应用来使这些改动生效,这...

    Python如何重新加载模块

    在Python编程中,有时我们需要对已经导入的模块进行重新加载,特别是在开发和调试阶段,当模块的源代码有所更改后,我们希望立即看到修改的效果。Python提供了`reload()`函数(在Python 3.x中,该功能被迁移到`...

    Python Module Loader_Network_

    "Python Module Loader"是指Python解释器用于动态加载和执行Python模块的机制。这个标题暗示我们将讨论Python如何处理网络相关的模块加载。 Python模块是代码组织的基本单元,可以包含函数、类和其他可执行的Python...

    c#调用Python源码,No module named xx解决方案

    4. **加载Python脚本**: 使用`ScriptEngine.CreateScriptSourceFromFile()`方法加载Python源码文件,然后使用`Execute()`方法运行脚本。 5. **处理"No module named xx"问题**: 当遇到找不到模块的错误时,有以下几...

    Python重新加载模块的实现方法

    这篇文章主要介绍了在Python中如何实现模块的重新加载。 Python的`importlib`模块是用于动态导入和操作模块的核心工具。它提供了多种方法来加载、卸载和重新加载模块。然而,`importlib`本身并不直接支持在代码运行...

    Python-FixIDAPython修复IDA加载IDAPython时出现的错误

    FixIDAPython - 修复IDA加载IDAPython时出现的错误

    第10.10节 Python使用__init__.py自动加载包下内容.rar

    在本节中,我们将深入探讨如何利用`__init__.py`文件来实现包的自动加载,从而理解Python的包结构和导入机制。 首先,让我们明确`__init__.py`文件的作用。在Python中,一个包含`__init__.py`的目录被视为一个包。...

    解决centos python 3 ModuleNotFoundError: No module named '_bz2'

    在使用Python进行编程时,有时会遇到`ModuleNotFoundError: No module named '_bz2'`这样的错误,这通常意味着你的Python 3环境缺少了一个名为_bz2的模块。这个模块是Python 3内置的,用于处理BZip2压缩格式的数据。...

    python 理解module demo 源码

    在Python编程中,模块(Module)是一个包含所有定义的函数和变量的文件,通常具有`.py`扩展名。模块可以被其他程序导入,以便重用代码或者组织代码结构。本篇将深入理解Python中的模块机制,并通过分析"runoob-...

    python 动态加载的实现方法

    脚本语言都有一个优点,就是动态加载。lua语言有这个优点,python也有这个特性。说简单点就是,如果开发者发现自己的代码有bug,那么他可以在不关闭原来代码的基础之上,动态替换模块。替换方法一般用reload来完成。...

    Python小游戏源码-Module_画板涂鸦项目源码

    在本项目中,"Python小游戏源码-Module_画板涂鸦项目源码" 提供了一个使用Python编程语言实现的简单画板涂鸦应用。这个小游戏允许用户在屏幕上自由绘制,体验基本的图形绘制功能,是学习Python图形界面编程的一个...

    in the python module: kNN.py

    接着,加载数据、分割训练集和测试集,然后进行预处理(如标准化)。例如: ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) scaler = StandardScaler()...

    学习python第十一天 反射、动态加载模块.pdf

    module = importlib.import_module("文件名") # 动态加载模块 ``` Python的反射机制和动态加载模块功能对于开发者来说非常有价值,它们可以让程序更加灵活和可扩展。但是,需要注意的是,反射机制的使用需要遵守一定...

    C#执行python文件

    dynamic pythonFunction = pythonModule.your_function; // 获取Python函数 // 调用Python函数 object result = pythonFunction(); } finally { // 释放全局解释器锁 Py.ReleaseGIL(); } ``` 在实际应用中,...

    Python实现动态加载模块、类、函数的方法分析

    ### Python 实现动态加载模块、类、函数的方法分析 在Python编程中,动态加载模块、类和函数是一种非常实用的功能,特别是在需要根据运行时环境或用户输入来改变程序行为的情况下。下面将详细介绍几种常见的实现...

    Python库 | openmodule_test-3.0.4-py2.py3-none-any.whl

    通常,一个名为`openmodule_test`的库可能提供了一系列与模块操作相关的函数和类,比如模块导入、导出、动态加载等,这些功能对于开发人员来说非常实用,可以简化他们在项目中处理模块的代码。 总的来说,`open...

    C++调用Python3函数与类的实例代码

    - 加载Python模块,使用`PyImport_ImportModule()`函数,例如`PyImport_ImportModule("my_module")`加载名为`my_module`的模块。 - 获取模块中的函数,通过`PyObject_GetAttrString()`获取函数对象,然后用`...

Global site tag (gtag.js) - Google Analytics