metaclasses元类:就像对象是类的实例一样,类是它的元类的实例。调用元类可以创建类。

metaclass使用type来创建类,type可以被继承生成新的元类。

这个和C#的反射很相似。

下面是一个通过元类创建类的事例:

def __init__(self):
self.message='hello world'
def say(self):
print(self.message)

attrs={'__init__':__init__,'say':say}
bases=(object,)
haha=type('haha',bases,attrs)
print(haha)

a=haha()
a.say()
print(type(a))

引用:http://www.cnblogs.com/coderzh/archive/2008/12/07/1349735.html

Python metaclasses的更多相关文章

  1. Understanding Python metaclasses

    转载:https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/ None of the existing article ...

  2. Protocol Buffer Basics: Python

    原文https://developers.google.com/protocol-buffers/docs/pythontutorial Protocol Buffer Basics: Python ...

  3. Python type类具体的三大分类:metaclasses,classes,instance

    Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意.下面我们就看看如何才能更好的运用Python type类.下面的文章希望大家有所收获. 在单纯的Python t ...

  4. python类:描述器Descriptors和元类MetaClasses

    http://blog.csdn.net/pipisorry/article/details/50444769 描述器(Descriptors) 描述器决定了对象属性是如何被访问的.描述器的作用是定制 ...

  5. Python高级特性(3): Classes和Metaclasses(转)

    原文:Python高级特性(3): Classes和Metaclasses 类和对象 类和函数一样都是Python中的对象.当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变 ...

  6. Python 元类 - Metaclasses

    Python 元类 - Metaclasses 默认情况下儿, classes 是有 type() 构造的. 类的结构体在一个新的 namespace 被执行, 类的名字 class name 绑定( ...

  7. Python——五分钟理解元类(metaclasses)

    “元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要.” —Tim Peters 本文源于在 PyCon UK 2008 上的一个快速演讲. 元类被称为 Pyt ...

  8. python之路六

    面向对象 引言 提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation).Python也是一种支持OOP的动态语言, ...

  9. Python魔法 - MetaClass

    Python魔法 - MetaClass metaclass The class of a class. Class definitions create a class name, a class ...

随机推荐

  1. JAVA 1.5 并发之 ReentrantLock

    在文章里我不打算具体讲Lock的实现,对此有兴趣的请点击这篇博文 http://www.blogjava.net/BucketLi/archive/2010/09/30/333471.html 我是一 ...

  2. css中的特殊居中

    大图居中: 先看一下普通的居中: 代码为: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  3. java基础知识(5)---继承

    继 承:(面向对象特征之一)好处:1:提高了代码的复用性.2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的.java中对于继承,java只 ...

  4. window下rails4.1 发生TZInfo::DataSourceNotFound 错误 - smallbottle

    在官网上学习rails 4.1 ,启动rails server之后发生了如下错误 $ rails server Booting WEBrick Rails 4.1.0 application star ...

  5. 具体问题:3、hibernate跟Mybatis/ ibatis 的区别,为什么选择?

    第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...

  6. sklearn解决过拟合的例子

    Learning curve 检视过拟合 sklearn.learning_curve 中的 learning curve 可以很直观的看出我们的 model 学习的进度, 对比发现有没有 overf ...

  7. p4180 次小生成树

    传送门 分析: 次小生成树的求法有两种,最大众的一种是通过倍增LCA找环中最大边求解,而这里我介绍一种神奇的O(nlogn) 做法: 我们先建立最小生成树,因为我们用kruskal求解是边的大小已经按 ...

  8. BOX (UVA-1587) 比较代码书写上的差距

    对比一下代码的书写差距: 我的代码: #include<iostream> using namespace std; ]; ]; ]; //访问标记 bool judge(int i, i ...

  9. sqlserver2012——存储过程

    存储过程:是一组为了完成特定功能的SQL语句,经编译后存储在数据库中. 他们可以接受参数.输出参数.返回单个或者多个结果集以及返回值 存储过程种类 1.用户自定义存储过程 2.系统存储过程 3.扩展存 ...

  10. 用Python解析XMind

    本文来自网易云社区 作者:孙圣翔 转自:http://shengxiang.me/article/35/python-parse-xmind.html XMind是画思维脑图很好的工具,正好组里有个需 ...