动态创建类实例代码


Posted in Python onOctober 07, 2009

例如:
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
Python 相关文章推荐
编写Python爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
详解Python中heapq模块的用法
Jun 28 Python
python读取oracle函数返回值
Jul 18 Python
django ajax json的实例代码
May 29 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python中一些深不见底的“坑”
Jun 12 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
python神经网络Xception模型
May 06 Python
Python 文件操作实现代码
Oct 07 #Python
Python 第一步 hello world
Sep 25 #Python
Python 字符串定义
Sep 25 #Python
Python 流程控制实例代码
Sep 25 #Python
Cython 三分钟入门教程
Sep 17 #Python
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 #Python
PHP webshell检查工具 python实现代码
Sep 15 #Python
You might like
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
Python实现进程同步和通信的方法
2018/01/02 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python如何定义接口和抽象类
2020/07/28 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
装潢设计专业推荐信模板
2013/11/26 职场文书
优秀员工自荐书
2013/12/19 职场文书
上海世博会口号
2014/06/19 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
商务信函英语问候语
2015/11/10 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python