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 相关文章推荐
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 Python
python进阶教程之文本文件的读取和写入
Aug 29 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
Python日期的加减等操作的示例
Aug 15 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
python 中xpath爬虫实例详解
Aug 26 Python
python DataFrame转dict字典过程详解
Dec 26 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
Python面向对象特殊属性及方法解析
Sep 16 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
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
Python中的ctime()方法使用教程
2015/05/22 Python
Python 的描述符 descriptor详解
2016/02/27 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python中的json总结
2018/10/11 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Python通过socketserver处理多个链接
2020/03/18 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
python中的yield from语法快速学习
2020/11/06 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
Golang 切片(Slice)实现增删改查
2022/04/22 Golang