python什么模块动态调用链接库_python 动态调用模块、类、方法(django项目)
需求:近一段时间基于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项目)相关推荐
- python什么模块动态调用链接库_python如何调用扩展模块
楔子 我们知道python的执行效率不是很高,而且由于GIL的原因,导致python不能充分利用多核CPU.一般的解决方式是使用多进程,但是多进程开销比较大,而且进程之间的通信也会比较麻烦.因此在解决 ...
- python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解
本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: 1 2 3 4 5 6 7 8 9 ...
- python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- java 项目加载dll文件,Java动态调用链接库dll文件
Java动态调用链接库dll文件 Java动态调用链接库dll文件 因为项目需要,用到了java调用dll文件中的方法.写成dll文件大多是用C语言弄成的,对于我这个纯粹干java的人员来说,着实让我 ...
- python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...
在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...
- python里不能调用random库_Python标准库教程—random模块
本文翻译自 Doug Hellmann 的 PyMOTW-3项目的random模块. 原文链接:https://pymotw.com/3/random/index.html 本文使用cc-by-nc- ...
- python调用数学库_python 数学库
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在寻找一个3d数学库在python或python绑定. 它需要处理旋转,平移 ...
- python创建字典和包的区别_python之路—模块和包
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...
最新文章
- 《数据科学家养成手册》--“什么性质的人才能称得上科学家?” “科学的意思”
- RED HAT LINUX 9.0的安装文本模式(2)
- iis 改了php ini不生效,Windows IIS 集成PHP时修改PHP.ini 配置后不生效问题
- P3723 [AH2017/HNOI2017]礼物(FFT)
- java编程线程怎么处理_java编程多线程并发处理的教程
- Spring框架----Spring的bean的生命周期
- 第 11 章 直接内存
- libsvm 的使用
- 【手机开发岗位职责|手机开发是做什么的】-看准网
- 并发编程 06—— CompletionService :Executor 和 BlockingQueue
- uniapp开发App如何引入阿里巴巴矢量库图标
- html在线围棋对战,闲情奕趣(基于html5的围棋应用)
- Clickhouse:日志表占用大量磁盘空间怎么办?
- Java web(简单的servlet计算器)网页计算器
- 关于Ajax的英雄联盟查询英雄案例
- 如何使用 MATLAB 绘制小提琴图
- 张俊林:由ChatGPT反思大语言模型(LLM)的技术精要(2)
- anc降噪是什么意思
- 怎么在Excel中凑数
- m4v格式如何转换mp4?分享m4v转换mp4的方法
热门文章
- Java RMI 多个JVM间相互通信
- java虚拟机加载类_java虚拟机之类加载机制(一)
- ElasticSearch下载安装教程详解【7.10版本】
- 赫夫曼编码-译码器(Huffman Coding)
- Array K-Coloring
- 本地提交到yarn_Hadoop(四) Yarn
- android清空frame,android – GLSurfaceView onDrawFrame清除行为
- JVM调优技巧与经验
- 【CentOS Linux 7】实验3【网络配置管理】
- Android Kotlin 协程async