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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python 功能和特点(新手必学)
Dec 30 Python
详解Python中的变量及其命名和打印
Mar 11 Python
对Python中数组的几种使用方法总结
Jun 28 Python
Django基础知识与基本应用入门教程
Jul 20 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
Elasticsearch 索引操作和增删改查
Apr 19 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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
Chrome Web App开发小结
2014/09/04 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python zip文件 压缩
2008/12/24 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
python实现浪漫的烟花秀
2019/01/30 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Pycharm调试程序技巧小结
2020/08/08 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
作风建设年活动总结
2014/08/27 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
简历自我评价优缺点
2015/03/11 职场文书
教师节表彰会主持词
2015/07/06 职场文书