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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
python取代netcat过程分析
Feb 10 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
Python实现微信小程序支付功能
Jul 25 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
Python 操作 MySQL数据库
Sep 18 Python
Python urllib3软件包的使用说明
Nov 18 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 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
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Python中的集合介绍
2019/01/28 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python实现操作文件(文件夹)
2019/10/31 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
贫困证明书格式及范文
2014/10/15 职场文书
公积金接收函格式
2015/01/30 职场文书
小学教师岗位职责
2015/04/02 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
Python学习开发之图形用户界面详解
2021/08/23 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server