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程序抓取新浪在国内的所有IP的教程
May 04 Python
Python获取任意xml节点值的方法
May 05 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
django session完成状态保持的方法
Nov 27 Python
Python assert关键字原理及实例解析
Dec 13 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
python 使用while循环输出*组成的菱形实例
Apr 12 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
python中time、datetime模块的使用
Dec 14 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 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安全编程之加密功能
2006/10/09 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
Django开发中复选框用法示例
2018/03/20 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
HTML的form表单和django的form表单
2019/07/25 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
法律专业实习鉴定
2013/12/22 职场文书
外联部演讲稿
2014/05/24 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
单位计划生育责任书
2015/05/09 职场文书
校运会新闻稿
2015/07/17 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers