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创建一个最简单http webserver服务器的方法
May 08 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
浅析Python四种数据类型
Sep 26 Python
Python subprocess库的使用详解
Oct 26 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
教你使用Pandas直接核算Excel中快递费用
May 12 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 之Section与Cookie使用总结
2012/09/14 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JS拖拽插件实现步骤
2015/08/03 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
pytorch SENet实现案例
2020/06/24 Python
python基于opencv 实现图像时钟
2021/01/04 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
幼儿园实习自我鉴定
2013/12/15 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
怀念母亲教学反思
2014/04/28 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
团组织推荐意见
2015/06/05 职场文书
国庆阅兵观后感
2015/06/15 职场文书
红白喜事主持词
2015/07/06 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
PHP实现两种排课方式
2021/06/26 PHP