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的Flask框架实现视频的流媒体传输
Mar 31 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
Python带动态参数功能的sqlite工具类
May 26 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Python yield的用法实例分析
Mar 06 Python
python如何变换环境
Jul 21 Python
利用Opencv实现图片的油画特效实例
Feb 28 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/03/04 咖啡文化
如何使用PHP中的字符串函数
2006/10/09 PHP
PHP中的Memcache详解
2014/04/05 PHP
php常用hash加密函数
2014/11/22 PHP
JavaScript中json使用自己总结
2013/08/13 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
js中this的用法实例分析
2015/01/10 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
domReady的实现案例
2016/11/23 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
详解小白之KMP算法及python实现
2019/04/04 Python
python内存管理机制原理详解
2019/08/12 Python
使用python远程操作linux过程解析
2019/12/04 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
仓库管理制度
2014/01/21 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
活动总结书
2014/05/08 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers