__metaclass__
来源:互联网 发布:淘宝卖家电话人工服务 编辑:程序博客网 时间:2024/06/05 05:14
classFoo(Bar):
pass
Python做了如下的操作:
Foo中有__metaclass__这个属性吗?如果是,Python会在内存中通过__metaclass__创建一个名字为Foo的类对象(我说的是类对象,请紧跟我的思路)。如果Python没有找到__metaclass__,它会继续在Bar(父类)中寻找__metaclass__属性,并尝试做和前面同样的操作。如果Python在任何父类中都找不到__metaclass__,它就会在模块层次中去寻找__metaclass__,并尝试做同样的操作。如果还是找不到__metaclass__,Python就会用内置的type来创建这个类对象。
现在的问题就是,你可以在__metaclass__中放置些什么代码呢?答案就是:可以创建一个类的东西。那么什么可以用来创建一个类呢?type,或者任何使用到type或者子类化type的东东都可以。
转载来自:http://blog.jobbole.com/21351/
阅读全文
0 0
- __metaclass__
- python元类__metaclass__
- python当中__metaclass__探讨
- python __metaclass__ metaclass
- [Python]元类和__metaclass__
- python2.7 模块全局__metaclass__
- Python中的__metaclass__=type什么意思
- Python中的__metaclass__=type什么意思
- Python中的元类(__metaclass__)
- Python __new__, __init__, __metaclass__, __call__, __del__, __getattr__, __getattribute__
- Python 单例模式详解 __new__, import ,__dict__,__metaclass__
- python 类demo(2)__metaclass__批量化添加属性
- 实现Spring拦截器拦截ajax请求并重定向
- Swift学习笔记(10)——控制流
- angular设置页面路由及seo问题
- Rn学习
- 学习廖大的JS--第二节
- __metaclass__
- 记一次MySQL中Waiting for table metadata lock的解决方法
- 辗转相除法
- react-redux的简单使用
- Unit7
- Spring MVC @Validated的使用
- 十一月二号课堂笔记
- 并发学习路线
- android java8的使用配置