当前位置: 首页 > 编程笔记 >

Python实现动态添加类的属性或成员函数的解决方法

郏博瀚
2023-03-14
本文向大家介绍Python实现动态添加类的属性或成员函数的解决方法,包括了Python实现动态添加类的属性或成员函数的解决方法的使用技巧和注意事项,需要的朋友参考一下

某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法。用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块。

本文就此简述了Python实现动态添加类的属性或成员函数的解决方法,具体方法如下:

首先我们可以参考ulipad的实现:mixin。

这里做的比较简单,只是声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数html" target="_blank">动态加载为类的成员函数。

代码如下所示:

class WinBAS(Bas):
  def __init__(self):
    self.__baslist = {}
    self.__Init_Modules()
    pass
  def __Init_Modules(self):
    import modplugs
    for m in modplugs.__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函数如下:

def BAS_GetUserList(self, strs):
  return [0, strs]

这样WinBAS类就可以动态加入了BAS_GetUserList函数。

 类似资料:
  • 本文向大家介绍JS实现给对象动态添加属性的方法,包括了JS实现给对象动态添加属性的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现给对象动态添加属性的方法。分享给大家供大家参考,具体如下: 在工作用要用到给jd对象动态添加属性的要求,在网上找到了一种解决方式,实例如下: 1、demo 这种方式试过确实可以 2、项目中使用 遍历input获取值,js对象动态添加属性和属性值。 更

  • 本文向大家介绍Javascript 创建类并动态添加属性及方法的简单实现,包括了Javascript 创建类并动态添加属性及方法的简单实现的使用技巧和注意事项,需要的朋友参考一下 JavaScript 是一种很强的面向对象的语言,支持创建实例之后再添加属性和方法,虽然是小技巧,用的时候容易忘记,今天写了一个很小的例子,记录在这里,仅供参考。 一个小例子,高手勿喷,欢迎留言交流。 以上就是小编为大家

  • 本文向大家介绍Python实现动态给类和对象添加属性和方法操作示例,包括了Python实现动态给类和对象添加属性和方法操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现动态给类和对象添加属性和方法操作。分享给大家供大家参考,具体如下: 动态给类和对象添加属性 定义一个Person类 给对象添加属性 运行结果: amy 10 anne 18 给类添加属性 运行结果: f

  • 问题内容: 目标是创建一个行为类似db结果集的模拟类。 因此,例如,如果数据库查询使用表达式返回,那么我想看看: 刚开始我以为我可以这样做: 但返回一个属性对象。 用替换该行根本没有用。 那么在运行时创建实例属性的正确方法是什么? 问题答案: 我想我应该扩大这个答案,因为我年纪大一些并且比较聪明,并且知道发生了什么事。迟到总比不到好。 你可以动态地向类添加属性。但这很重要:你必须将其添加到类中。

  • 本文向大家介绍遍历json 对象的属性并且动态添加属性的实现,包括了遍历json 对象的属性并且动态添加属性的实现的使用技巧和注意事项,需要的朋友参考一下 昨天因为公司的一个需求,所以就研究了一下json对象的属性的遍历和动态修改: 以上这篇遍历json 对象的属性并且动态添加属性的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python类的方法属性与方法属性的动态绑定代码详解,包括了python类的方法属性与方法属性的动态绑定代码详解的使用技巧和注意事项,需要的朋友参考一下 动态语言与静态语言有很多不同,最大的特性之一就是可以实现动态的对类和实例进行修改,在Python中,我们创建了一个类后可以对实例和类绑定心的方法或者属性,实现动态绑定。 最近在学习python,纯粹是自己的兴趣爱好,然而并没有系统地