`
matt.u
  • 浏览: 130299 次
  • 性别: Icon_minigender_1
  • 来自: CQ
社区版块
存档分类
最新评论

python中动态创建类实例

阅读更多
转载自http://www.python8.org/a/fenleiwenzhang/yuyanjichu/2010/1001/566.html

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()

若要封装的规范一些,可以这样来做:
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动态创建类实例的方法 Python提供了多种方式来实现动态创建类实例的功能,其中一种常见的方式是利用内置的`__import__`函数结合`getattr`方法。 #### 实现原理 1. **模块导入**:使用`__import__`函数...

    python实现动态创建类的方法分析

    在 Python 中,动态创建类是一种非常有用的技术,尤其当需要在运行时基于某些条件生成特定类时。本篇文章将深入探讨 Python 如何实现动态创建类的方法,包括其实现原理、具体的实现步骤以及相关的操作技巧。 #### ...

    C++调用Python3函数与类的实例代码

    先获取类对象,然后用`PyObject_CallObject()`创建实例。例如: ```cpp PyObject* klass = PyObject_GetAttrString(module, "MyClass"); PyObject* instance = PyObject_CallObject(klass, NULL); Py_DECREF...

    python 脚本实例 编程实例 入门实例

    Python支持面向对象编程,包括类的定义、对象的创建、继承和多态等概念。虽然作为入门实例,但某些复杂点的脚本如`JCP067.py`可能涉及到这些内容。 10. **标准库与第三方库** Python拥有丰富的标准库和第三方库,...

    Python-动态创建一个模型的多个tablename并通过DjangoORM操作

    Django的ORM允许我们将Python类映射到数据库中的表,类的实例则对应于表中的行。默认情况下,Django会根据模型类的名字来生成数据库表名,但可以通过`Meta`类中的`db_table`属性自定义表名。 在Django中动态创建...

    Python使用type动态创建类操作示例

    在Python编程中,动态创建类是一项强大的特性,它允许我们在程序运行时根据需求构建新的类。`type`函数是实现这一功能的关键工具。本篇将深入探讨如何使用`type`来动态创建类,并通过实例来解析其工作原理、实现方法...

    python中创建实例属性共3页.pdf.zip

    本文将深入探讨Python中如何创建和管理实例属性,以及它们在实际编程中的应用。 1. **类与实例** 在Python中,类是一种自定义数据类型,用于封装数据和方法。实例则是类的实体化,通过`__init__`方法初始化,可以...

    python基础教程:定义类创建实例.pdf

    本教程将详细解释如何在Python中定义类和创建实例。 首先,让我们来看如何定义一个类。在Python中,类是通过`class`关键字来创建的。类名通常遵循驼峰命名法,即首字母大写,例如`Person`。类定义的主体通常包含...

    python+html桌面应用实例

    在本实例中,Vue被用来创建前端页面,你可以用Vue的模板语法编写HTML,同时利用其提供的状态管理和生命周期钩子,实现动态交互和数据管理。 在实践中,你可能会首先创建一个Vue项目,编写HTML、CSS和JavaScript代码...

    python如何为创建大量实例节省内存

     首先要明白,python中的类可以动态的添加属性,实则在内存中有个__dict__方法维护了这种动态添加属性,它占有内存,把它关掉,不就达到省内存要求了? #!/usr/bin/python3 import time import sys class P

    python3程序开发指南第二版实例与课后习题源代码

    7. **面向对象编程**:掌握类的定义、对象的创建、继承、封装和多态等面向对象的基本概念,理解类方法、静态方法和实例方法的区别。 8. **异常处理**:理解`try/except/finally`结构,学会捕获和处理程序运行中的...

    Python中的元类编程入门指引

    2. 动态创建类:通过元类,可以在运行时动态地创建类,这对于某些需要动态调整类结构的情况非常有用。 3. 注解和验证:元类可以用于检查类定义,确保它们符合特定的规范,或者为类添加元数据。 示例中提到了两种...

    Python Flask开发实例(自己敲的试验楼小Demo)

    在本实例中,Flask用于构建一个简单的博文系统,实现用户登录、登出以及发布和查看博文的功能。 **二、SQLite3数据库** SQLite3是Python标准库中的一个嵌入式数据库,无需单独服务器进程,可以直接在应用程序中...

    python实现最短路径的实例方法

    Python 实现最短路径的实例方法主要涉及到图论和算法,特别是解决网络中两点之间最高效、最低成本的路径问题。下面将详细讲解三种常用的算法:迪杰斯特拉算法(Dijkstra算法)、弗洛伊德算法(Floyd算法)以及SPFA...

    Python中调用C++dll例子

    在Python编程中,有时我们需要利用已有的C++库或者DLL(动态链接库)来扩展功能,这通常通过Python的`ctypes`模块实现。`ctypes`是Python的一个标准库,它允许我们直接调用C语言编译的动态链接库,从而实现了Python...

    Python调用DLL实例

    在IT行业中,动态链接库(DLL)是一种共享代码的方式,允许多个程序同时使用同一段代码,从而节省内存和提高效率。DLLs在Windows操作系统中尤为常见,C++是创建DLL的主要编程语言。本主题将深入探讨非MFC规则DLL、...

    python3接口框架带实例

    在本实例中,我们可能会看到如何导入requests库并构造请求,包括设置URL、参数、头信息等。 接下来,用例管理是测试过程中的关键部分。这里提到的是读取Excel文件来获取测试用例。Python提供了pandas库,它允许我们...

    在.Net6中调用IronPython实现动态执行脚本

    一旦引入了IronPython,你可以创建一个`ScriptEngine`实例来启动Python环境。例如: ```csharp using IronPython.Hosting; // 初始化Python解释器 var engine = Python.CreateEngine(); ``` 然后,你可以使用`...

Global site tag (gtag.js) - Google Analytics