Python实现动态添加类的属性或成员函数的解决方法
2023-06-13 09:15:38 时间
某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法。用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块。
本文就此简述了Python实现动态添加类的属性或成员函数的解决方法,具体方法如下:
首先我们可以参考ulipad的实现:mixin。
这里做的比较简单,只是声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数动态加载为类的成员函数。
代码如下所示:
classWinBAS(Bas): def__init__(self): self.__baslist={} self.__Init_Modules() pass def__Init_Modules(self): importmodplugs forminmodplugs.__moduleset__: mh=__import__("modules."+m)#+"."+m) ma=getattr(mh,m)#+"."+m) ma=getattr(ma,m) setattr(self.__class__,m,ma)
modplugs.py是模块配置文件如下:
__moduleset__=[ "BAS_GetUserList", ]
然后建立目录modules下面建立一个空的__init__.py文件,把目录变为一个包,在modules目录下建立真正的BAS_GetUserList实现:BAS_GetUserList文件中有个BAS_GetUserList函数如下:
defBAS_GetUserList(self,strs): return[0,strs]
这样WinBAS类就可以动态加入了BAS_GetUserList函数。
相关文章
- Python爬虫之requests
- python十进制转换_Python 进制转换
- python编程是啥-Python编程「建议收藏」
- python可变类型有哪些_python可变数据类型有哪些
- python海龟绘图画圆_Python启蒙之海龟作图「建议收藏」
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- 【说站】Python切片获取列表多个值
- 【说站】python类属性的两种分类
- lambda python表达式_Python的条件表达式和lambda表达式实例
- python修改第三方库重写_对Python第三方库,再次封装
- Python保存json_python保存json文件
- python制作自动交易程序_Python如何实现自动化交易
- python json.loads 中文_Python 的完美 json loads
- 13 个 Python 开发者都应该知道的实用技巧
- Python迭代器是啥?
- python-Python与SQLite数据库-SQLite数据库的基本知识(一)
- python-Python与SQLite数据库-SQLite数据库的基本知识(二)
- Python __repr__()方法:显示属性
- Python __dir__()用法:列出对象的所有属性(方法)名
- Ubuntu18.04 一键升级Python所有第三方包 及安装python包的方法
- python基础详解编程语言
- 使用Python执行Linux命令的方法(python调用linux命令)
- 一步步学习:利用Python连接MySQL数据库(python连接mysql数据库)
- Linux查看Python安装路径的方法(linux查看python安装路径)
- Linux环境下Python开发的历程(linux与python)
- 在Linux下使用pip指令管理Python软件包(linux下pip命令)
- Python脚本实现Linux命令快捷控制(python执行linux命令)
- Linux Python:开启互联网新时代(linux python)