动态创建类实例代码_python

例如:
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

时间: 2024-10-26 05:31:21

动态创建类实例代码_python的相关文章

使用AS动态创建文本实例代码

选择"文件">"新建",然后选择"Flash 文档"创建一个新的 FLA 文件. 在时间轴的第 1 帧上键入下面的 ActionScript: this.createTextField("test_txt", 10, 0, 0, 300, 100); 此代码在 (0, 0) 点.深度(z 顺序)为 10 的位置创建一个名为 test_txt 的 300 x 100 像素的文本字段. 要访问新创建的文本字段的方法和属性,请

用.net动态创建类的实例

用.net动态创建类的实例 看了网上很多关于DotNet动态创建类的实例的文章,我这里想总结一下,其实方法很简单,就是用"Activator.CreateInstance".但是这个方法需要待创建的类的Type作为参数,为了获得该参数,可以利用[Assembly].GetType方法,这个方法只需要待创建的类的名称(名称字符串)就可以了,最后的问题就是要获得这个类所在的程序集.如何获得待创建的类所在程序集,那么就解决了这个问题. 其实,在获得程序集这个问题上,可以有更简单的办法,以下是

经典教程:用.net动态创建类的实例

看了网上很多关于DotNet动态创建类的实例的文章,我这里想总结一下,其实方法很简单,就是用"Activator.CreateInstance".但是这个方法需要待创建的类的Type作为参数,为了获得该参数,可以利用[Assembly].GetType方法,这个方法只需要待创建的类的名称(名称字符串)就可以了,最后的问题就是要获得这个类所在的程序集.如何获得待创建的类所在程序集,那么就解决了这个问题. 大家可以参考http://www.cnblogs.com/ShadowK/archi

应用技巧:用.net动态创建类的实例

创建|动态|技巧 看了网上很多关于DotNet动态创建类的实例的文章,我这里想总结一下,其实方法很简单,就是用"Activator.CreateInstance".但是这个方法需要待创建的类的Type作为参数,为了获得该参数,可以利用[Assembly].GetType方法,这个方法只需要待创建的类的名称(名称字符串)就可以了,最后的问题就是要获得这个类所在的程序集.如何获得待创建的类所在程序集,那么就解决了这个问题. 大家可以参考http://www.cnblogs.com/Shad

net 反射 c#-我就想知道“动态创建类的实例”中的动态到底什么意思?

问题描述 我就想知道"动态创建类的实例"中的动态到底什么意思? 讲反射的地方到处都在讲一句话:动态创建类的实例,我就想知道这个"动态"到底是什么意思?怎么就叫"动态"了?

分享Ajax创建简单实例代码_AJAX相关

XmlHttp是一套可以在Javascript.VbScript.Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API.XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面.几乎所有的浏览器都支持XMLHttpRequest对象,它是Ajax应用的核心技术. js代码如下: <html> <head> <title> New Document </title> <meta charset="utf

分享Ajax创建简单实例代码

XmlHttp是一套可以在Javascript.VbScript.Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API.XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面.几乎所有的浏览器都支持XMLHttpRequest对象,它是Ajax应用的核心技术. js代码如下: <html> <head> <title> New Document </title> <meta charset="utf

php读取qqwry.dat ip地址定位文件的类实例代码

实例如下: <?php // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- cla

PHP之图片上传类实例代码(加了缩略图)

有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下 <form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file&q