当前位置:  编程技术>python

动态创建类实例代码

    来源: 互联网  发布时间:2014-09-04

    本文导语:  例如: import mymodule myobject = mymodule.myclass() 或者 from mymodule import myclass myobject = myclass() 如果要在程序中动态地创建类实例,也一样要分两步走,例如: m = __import__('mymodule') c = getattr(m, 'myclass') myobject = c() 但是要注意:如果myclass...

例如:
import mymodule
myobject = mymodule.myclass()
或者
from mymodule import myclass
myobject = myclass()

如果要在程序中动态地创建类实例,也一样要分两步走,例如:
m = __import__('mymodule')
c = getattr(m, 'myclass')
myobject = c()

但是要注意:如果myclass并不在mymodule的自动导出列表中(__all__),则必须显式地导入,例如:
m = __import__('mymodule', globals(), locals(), ['myclass'])
c = getattr(m, 'myclass')
myobject = c()

若要封装的规范一些,可以这样来做:
Code
代码如下:

class Activator:
'''本类用来动态创建类的实例'''
@staticmethod
def createInstance(class_name, *args, **kwargs):
'''动态创建类的实例。
[Parameter]
class_name - 类的全名(包括模块名)
*args - 类构造器所需要的参数(list)
*kwargs - 类构造器所需要的参数(dict)
[Return]
动态创建的类的实例
[Example]
class_name = 'knightmade.logging.Logger'
logger = Activator.createInstance(class_name, 'logname')
'''
(module_name, class_name) = class_name.rsplit('.', 1)
module_meta = __import__(module_name, globals(), locals(), [class_name])
class_meta = getattr(module_meta, class_name)
object = class_meta(*args, **kwargs)
return object

    
 
 

您可能感兴趣的文章:

  • C语言构建动态数组完整实例
  • 使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
  • asp.net 动态创建控件的演示实例
  • C++实现动态分配const对象实例
  • NOSQL iis7站长之家
  • jquery动态添加删除一行数据实例
  • asp.net 动态添加多个用户控件(实例代码)
  • android 动态控制状态栏显示和隐藏的方法实例
  • Jquery实例 动态切换图片
  • C#中动态显示当前系统时间的实例方法
  • android动态壁纸调用的简单实例
  • jquery动态加载select下拉框实例代码
  • VC6.0如何创建以及调用动态链接库实例详解
  • Asp.net动态生成html页面的实例详解
  • c#动态调用Webservice的两种方法实例
  • C#动态执行字符串(动态创建代码)的实例代码
  • jQuery动态倒计时插件实例代码
  • 小弟写了一个很简单的动态库实例函数用来学习,但编译通过之后执行可执行文件报错。跪请高手帮忙!!!!
  • PHP GD库动态生成折线图的实例代码
  • java使用动态代理来实现AOP(日志记录)的实例代码
  • 关于动态创建对象的问题
  • 如何删除PuTTY创建的动态遂道
  • 请教,如何动态创建组件对象。送分!
  • 如何使用kdevelop创建动态共享库程序,请高手指点
  • linux下动态库的创建疑问
  • 如何在LINUX下创建一个动态链接库?
  • sqlserver 动态创建临时表的语句分享
  • 关于给动态创建对象加actionLister
  • VC实现动态菜单的创建方法
  • 奇怪 linux 下 动态创建数组 这样写说结构体的实参类型无效
  • Linux下创建和调用动态链接库(.so)相关问题。高手进!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 使用 C# 动态编译代码和执行的代码
  • jquery为动态加载的元素绑定事件的代码
  • 不改变代码,怎样使每次编译生成的可执行程序或动态库二进制保持一致?
  • c# 动态添加非标准html控件的代码
  • ?100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)(散分)
  • Unix里编写动态库时会不会像Windows一样在源代码中含有Dllmain()类似的主函数?
  • 急,急,急!!!高分求购java实现动态树型菜单的源代码
  • jquery动态设置超链接显示内容的实现代码
  • Jquery 动态实现图片缩略的代码
  • 用css动态生成闪字的代码
  • 100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线
  • ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
  • 求jsp树的原代码,一定要是jsp+js+xml 执行效率要高。(从数据库中动态生成的)
  • 动态生成的孔件怎么添加响应事件,并在里面写代码?
  • jQuery动态获取系统时间的代码举例
  • php 饼状图的动态生成代码
  • jquery动态加载与去除js代码的三种方法
  • Java动态调用类中方法代码
  • Jquery 动态生成表格示例代码
  • jQuery动态改变图片显示大小(示例代码)
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • 动态库调用动态库
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • 关于动态菜单项,注意,不是动态菜单(一定给分)
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 为什么动态生成的图片,JSP不能动态的获得
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 动态加载动态库问题--在线等


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3