Python中type的构造函数参数含义说明


Posted in Python onJune 21, 2015

测试代码如下:

 class ModelMetaClass(type):

     def __new__(cls,name,base,attrs):

         logging.info("cls is:"+str(cls))

         logging.info("name is:"+str(name))

         logging.info("base is:"+str(base))

         logging.info("attrs is:"+str(attrs))

         return type.__new__(cls,name,base,attrs)

         pass

     pass

 

 class Model(dict):

     __metaclass__ = ModelMetaClass

     def __init__(self):

         pass

     pass

 

 def main():

     m=Model()

 

 if __name__ == '__main__':

     main()

测试结果:
 INFO:root:cls is:<class '__main__.ModelMetaClass'>

 INFO:root:name is:Model

 INFO:root:base is:(<type 'dict'>,)

 INFO:root:attrs is:{'__module__': '__main__', '__metaclass__': <class '__main__.ModelMetaClass'>, '__init__': <function __init__ at 0x025C76F0>}

结论就显而易见了。cls是当前类的名字,即类本身。name是通过__metaclass__属性指向ModelMetaClass的类,即要实例化的类,ModelMetaClass拦截了该类的实例化。base是要实例化的类的基类。attrs是要实例化的类的属性集合。
Python 相关文章推荐
python实现按行切分文本文件的方法
Apr 18 Python
详解python中executemany和序列的使用方法
Aug 12 Python
python ddt实现数据驱动
Mar 14 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
python 双循环遍历list 变量判断代码
May 04 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
Python中and和or如何使用
May 28 Python
如何利用Python 进行边缘检测
Oct 14 Python
python Tornado框架的使用示例
Oct 19 Python
Python函数式编程中itertools模块详解
Sep 15 Python
Pandas 数据编码的十种方法
Apr 20 Python
Python base64编码解码实例
Jun 21 #Python
python在控制台输出进度条的方法
Jun 20 #Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 #Python
Python写的一个简单监控系统
Jun 19 #Python
详解Python中的日志模块logging
Jun 19 #Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 #Python
举例详解Python中threading模块的几个常用方法
Jun 18 #Python
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python 将有序数组转换为二叉树的方法
2019/03/26 Python
Python collections模块的使用方法
2020/10/09 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
网络书店创业计划书
2014/02/07 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
公司股份合作协议书
2014/12/07 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers