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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
用python登录Dr.com思路以及代码分享
Jun 25 Python
python脚本设置系统时间的两种方法
Feb 21 Python
python基本语法练习实例
Sep 19 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
python 字典的打印实现
Sep 26 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
判断Python中的Nonetype类型
May 25 Python
Python中如何处理常见报错
Jan 18 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/02 无线电
php学习之变量的使用
2011/05/29 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
使用php清除bom示例
2014/03/03 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
python同时遍历两个list用法说明
2020/05/02 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
局域网定义和特性
2016/01/23 面试题
什么是岗位职责
2013/11/12 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
新学期决心书
2014/03/11 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
授权委托书公证
2014/09/14 职场文书
教师节座谈会主持词
2015/07/03 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js