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 相关文章推荐
Python2.x版本中cmp()方法的使用教程
May 14 Python
python开发之str.format()用法实例分析
Feb 22 Python
django基础之数据库操作方法(详解)
May 24 Python
python如何重载模块实例解析
Jan 25 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
pandas中去除指定字符的实例
May 18 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
python实现PolynomialFeatures多项式的方法
Jan 06 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php检测图片木马多进制编程实践
2013/04/11 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python-numpy-指数分布实例详解
2019/12/07 Python
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
师范生教师实习自我鉴定
2013/09/27 职场文书
护士个人简历自荐信
2013/10/18 职场文书
网络工程专业毕业生推荐信
2013/10/28 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
追悼会答谢词
2015/01/05 职场文书