需求:近一段时间基于django框架,开发各业务层监控代码,每个业务的监控逻辑不同,因此需要开发监控子模块,动态的导入调用。

项目名称:demo_django

App:common_base、monitor_master

监控子模块:demo_django/common_base/modules/classname.py

# -*- coding: utf-8 -*-

class classname(object):

def mod1(self):

print "mod1"

def mod2(self):

print "mod2"

备注:模块名与类名相同

动态应用模块:demo_django/common_base/module_partiton.py

def test():

clsname = "classname"

method = "mod1"

importmodule = LazyImport("monitor_base.modules." + clsname, clsname) # 导入classname模块

is_true = hasattr(importmodule, clsname) # 检查classname类是否在classname模块中

if is_true:

classname = getattr(importmodule, clsname)

obj = classname(self.hostlist, self.way) # 实例化classname类

mtd = getattr(obj,method)

mtd() # 调用mod1方法

class LazyImport(object):

"""

动态导入模块

"""

def __init__(self, module_name, module_class):

"""

:param module_name:

:param module_class:

:return: 等同于 form module_name import module_class

"""

self.module_name = module_name

self.module_class = module_class

self.module = None

def __getattr__(self, name):

if self.module is None:

self.module = __import__(self.module_name, fromlist=[self.module_class])

return getattr(self.module, name)

if __name__ == '__main__':

test()

python什么模块动态调用链接库_python 动态调用模块、类、方法(django项目)相关推荐

  1. python什么模块动态调用链接库_python如何调用扩展模块

    楔子 我们知道python的执行效率不是很高,而且由于GIL的原因,导致python不能充分利用多核CPU.一般的解决方式是使用多进程,但是多进程开销比较大,而且进程之间的通信也会比较麻烦.因此在解决 ...

  2. python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解

    本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: 1 2 3 4 5 6 7 8 9 ...

  3. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  4. java 项目加载dll文件,Java动态调用链接库dll文件

    Java动态调用链接库dll文件 Java动态调用链接库dll文件 因为项目需要,用到了java调用dll文件中的方法.写成dll文件大多是用C语言弄成的,对于我这个纯粹干java的人员来说,着实让我 ...

  5. python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  6. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  7. python里不能调用random库_Python标准库教程—random模块

    本文翻译自 Doug Hellmann 的 PyMOTW-3项目的random模块. 原文链接:https://pymotw.com/3/random/index.html 本文使用cc-by-nc- ...

  8. python调用数学库_python 数学库

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在寻找一个3d数学库在python或python绑定. 它需要处理旋转,平移 ...

  9. python创建字典和包的区别_python之路—模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

最新文章

  1. 《数据科学家养成手册》--“什么性质的人才能称得上科学家?” “科学的意思”
  2. RED HAT LINUX 9.0的安装文本模式(2)
  3. iis 改了php ini不生效,Windows IIS 集成PHP时修改PHP.ini 配置后不生效问题
  4. P3723 [AH2017/HNOI2017]礼物(FFT)
  5. java编程线程怎么处理_java编程多线程并发处理的教程
  6. Spring框架----Spring的bean的生命周期
  7. 第 11 章 直接内存
  8. libsvm 的使用
  9. 【手机开发岗位职责|手机开发是做什么的】-看准网
  10. 并发编程 06—— CompletionService :Executor 和 BlockingQueue
  11. uniapp开发App如何引入阿里巴巴矢量库图标
  12. html在线围棋对战,闲情奕趣(基于html5的围棋应用)
  13. Clickhouse:日志表占用大量磁盘空间怎么办?
  14. Java web(简单的servlet计算器)网页计算器
  15. 关于Ajax的英雄联盟查询英雄案例
  16. 如何使用 MATLAB 绘制小提琴图
  17. 张俊林:由ChatGPT反思大语言模型(LLM)的技术精要(2)
  18. anc降噪是什么意思
  19. 怎么在Excel中凑数
  20. m4v格式如何转换mp4?分享m4v转换mp4的方法

热门文章

  1. Java RMI 多个JVM间相互通信
  2. java虚拟机加载类_java虚拟机之类加载机制(一)
  3. ElasticSearch下载安装教程详解【7.10版本】
  4. 赫夫曼编码-译码器(Huffman Coding)
  5. Array K-Coloring
  6. 本地提交到yarn_Hadoop(四) Yarn
  7. android清空frame,android – GLSurfaceView onDrawFrame清除行为
  8. JVM调优技巧与经验
  9. 【CentOS Linux 7】实验3【网络配置管理】
  10. Android Kotlin 协程async