type动态创建类

在一些特定场合,需要动态创建类,比如创建表单,就会用到type动态创建类,举个例子:

 1 class Person(object):
 2
 3     def __init__(self,name,age):
 4         self.name = name
 5         self.age = age
 6
 7
 8 p = Person("aiden",22)
 9 print(type(p))
10 print(type(Person))
11
12
13
14 def __init__(self,name,age):
15     self.name = name
16     self.age = age
17
18 dog_class = type("Dog",(object,),{"role":"dog","__init__":__init__})   #动态添加属性与方法
19 print(dog_class)
20
21 d = dog_class(‘mjj‘,22)
22 print(d.role,d.name,d.age)

原文地址:https://www.cnblogs.com/intruder/p/11429061.html

时间: 2024-11-05 19:01:57

type动态创建类的相关文章

python动态创建类的声明

动态创建类的声明 使用内置函数type,原型:class type(name, bases, dict)name是类的名字,相当于__class__bases是类的基类,元组,可以有多个基类,但是基类必须直接或者间接继承自object类,否则会报错dict是类的变量,字典类型,相当于静态变量,与在__init__函数中声明的不同 代码示意片段: class A(object): def __init__(self): print "A init ..." class B(A): def

通过字符串动态创建类对象

功能的需求是  不需要使用IOC 框架 来对创建指定对象. .NET 中  要想动态的 创建对象   做耦合  好像只能做到 将类生成DLL 后  然后 加载DLL 接着创建对象. JAVA 当个类文件 就可以运行. 希望做到  当读一个   .class  或者 .TXT 就可以  动态创建类对象  那多好啊!!! 还可以将 类文件 以字符串的形式写到 数据库中  通过数据库来 创建类对象. 然后就各种百度 谷歌 贴吧等  找有没相关的 解决方案    还好  找到了  . 不藏着 分享出来

Python中动态创建类实例

Python中动态创建类实例 简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块.如下: def createInstance(module_name, class_name, *args, **kwargs): module_meta = __import__(module_name, globals(), locals(), [class_n

设计模式之工厂模式:模拟DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC动态创建类对象

该形式的工厂模式是我项目中用到的方法,属于很成熟的模版,读者可以直接拿来在自己项目中使用.个人感觉这种方法真正做到了"开放封闭"的原则,最大好处是用户产品类的设计完全不依赖于该模式的实现,比如提供必须的相关函数等.如果不理解工厂模式的话,请参考网上其它文章,本实现在理解上有一点小小的难度.好东西,大家慢慢享用,话不多说,先放代码! 首先是产品基类,它相当于一个接口,产品需要有什么动作就写在这里吧! #ifndef _CPRODUCTBASE_H_ #define _CPRODUCTBA

C++动态创建类的实例

写在前面:首先声明,C++实际上是不可以动态创建类的实例的. 下面简单做一个解释,所谓动态创建类的实例是指在程序运行过程中创建并使用一个“未知”的类.而“未知”是指在程序编译时并不知道有哪些类是需要动态创建的.对于C++这门语言来说,编译时不知道的类是不可以在运行时使用的.所以我说C++是不可以的. 不过C++可以做到另一件事情,基本可以满足大多数类似的需求. 我描述为通过类名称创建类的实例. 进入正题. 首先描述一下需求: 编写一个程序实现在程序运行过程中通过类名称(即字符串变量)创建该类的实

Django - Form嵌套的Meta类 + 为什么type()能创建类

Form里面嵌套了一个Meta类 class PostForm(forms.ModelForm): class Meta: model = Post # field to be exposed fields = ('title', 'text') Django是怎么处理的? 在models.py中 def modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, wid

[python]动态创建类

本文主要说明如何使用type来创建类,并添加类属性.方法. type实则是python内建元类,用来创建 类,当我们用class 定义一个类时,python后台是在用type创建该类. 了解type的两种用法 class type(object) | type(object) -> the object's type | type(name, bases, dict) -> a new type 创建A类,具有A.addr属性 >>> A = type('A', (), {'

Java 动态创建类

/* * 动态创建代理类 */ public static <T> T getProxy(Class<?> interfaceType,final Object target) throws Exception{ if(!interfaceType.isInterface()){  throw new Exception("接口类型不正确!"); } @SuppressWarnings("unchecked") T targerInstanc

C# Activator.CreateInstance 动态创建类的实例(二)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kernel.Interface { public interface IObjcet { void Put(); void Put(string plus); } } using System; using System.Collections.