python的new方法 使用场景不同效果也不一样
一种是指定元类时候, metaclass=MyType 类型
这种方式 在解释器执行到 metaclass=CrawlerProxyMetaclass
的时候, __new__方法就开始执行!
这里的 __new__方法是用来创建类对象的

class CrawlerProxyMetaclass(type):def __new__(cls, classname, parentclass, attrs):attrs['__crawl_method__'] = []print('in method new ')count = 0for key, value in attrs.items():if key.startswith('crawl_'):attrs['__crawl_method__'].append(key)count += 1attrs['__crawl_method_count__'] = countreturn super().__new__(cls, classname, parentclass, attrs)#return type.__new__(cls, classname, parentclass, attrs)

一种普通普通的继承关系 调用父类的__new__方法
这里的__new__方法是用来创建对象实例的
创建对象的时候才会被调用
先看object的 __new__方法

@staticmethod # known case of __new__def __new__(cls, *more): # known special case of object.__new__""" Create and return a new object.  See help(type) for accurate signature. """pass

我们重写父类的 __new__方法时候可以

    def __new__(cls, *args, **kwargs):return super().__new__(cls, *args, **kwargs)

python 之 __new__ 方法理解相关推荐

  1. [Python] Python 之 __new__() 方法与实例化

    __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将类的实例化,而在 __init__() ...

  2. python中__init__方法_关于python中__init__方法理解

    在理解__init__方法之前,我们需要搞明白,什么时候才需要用到的这个方法 什么是__init__? __init__方法在python中是类的初始化,通俗来讲,就是每次只要你去创建一个类的实例对象 ...

  3. python的__new__方法和__del__方法

    new()方法会在init之前调用 >>> class CapStr(str):def __new__(cls,string):string = string.upper()retu ...

  4. python怎么new对象_Python使用__new__()方法为对象分配内存及返回对象的引用示例

    本文实例讲述了Python使用__new__()方法为对象分配内存及返回对象的引用.分享给大家供大家参考,具体如下: demo.py(__new__方法): class MusicPlayer(obj ...

  5. 面向对象—的__new__()方法详解

    [Python] Python 之 __new__() 方法与实例化 __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方 ...

  6. __new__()方法的使用和实例化

    Python中__new__()方法的使用和实例化 1 2 new()是在新式类中新出现的方法,它作用在构造方法init()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法init ...

  7. python 多继承 __new___Python3中的__new__方法以及继承不可变类型类的问题

    最近在学到Python中的__new__方法时被弄懵逼了,一开始实在是很难理解,有很多地方想不通(本人强迫症).最近自己慢慢思索得出了能说服自己的理解: 说__new__方法之前要先提到__init_ ...

  8. Python中的__new__()方法的使用

    __new__() 函数只能用于从object继承的新式类. 先看下object类中对__new__()方法的定义: class object:   @staticmethod # known cas ...

  9. python init方法做了什么_Python类方法、__new__方法和__init__方法分别是什么

    Python类方法.__new__方法和__init__方法分别是什么 发布时间:2020-09-03 15:24:06 来源:亿速云 阅读:104 作者:小新 这篇文章主要介绍Python类方法._ ...

最新文章

  1. OpenCV代码提取:rotate函数的实现
  2. jQuery之validate验证表单
  3. 职场5年经验的工程师论述linux真没那么难
  4. treasure what you have now
  5. Kitten编程猫里如何先后播放不同的背景音乐
  6. php的文件包含总结 include require include_once require_once
  7. PAT乙类1010之1010 一元多项式求导
  8. python/正则 从字符串中提取数字
  9. NEC电话交换机基础操作
  10. qq群发信息显示服务器检测到,QQ昨夜出现功能异常 你以为没发出去的消息都被对方看见了...
  11. 《Python自然语言处理》——1.1 语言计算:文本和词汇
  12. Python中最快的搜索引擎之一:ThreadSearch(自己开发)(abccdee1)
  13. 求逆序对---学习笔记
  14. 视频文件的原声如何批量更换
  15. 为什么要使用虚拟机?
  16. mysql按 结束不了语句_每一条 mysql 命令必须以( )结束,否则系统判断语句尚未结束,暂不执行_大学计算机A1重修答案_学小易找答案...
  17. (一)Activiti 数据库25张表——流程历史记录表25(ACT_EVT_LOG)
  18. 相机的硬件接口以及传输协议介绍
  19. GIS本科毕业如何防止结束GIS职业生涯
  20. CTime 和COleDateTime的常用操作和比较

热门文章

  1. Codeforces Global Round 2 D. Frets On Fire (动态开点线段树,沙雕写法)
  2. linux ubuntu 关于vim得一些基本命令
  3. 笔记45 | 代码性能优化建议[转]
  4. JS-取出字符串中重复次数最多的字符并输出
  5. [转载]FPGA/CPLD重要设计思想及工程应用(时序及同步设计)
  6. 无线智能路由器家长控制宽带
  7. mysql 包 过程 job_mysql job实例全过程
  8. ajax包含mysql吗_php 实例ajax与mysql怎么只查询出一条数据?
  9. 模拟智能手环的时间显示功能 c语言,HT1635AHT1635B在穿戴式运动手环的LED显示之C语言版.PDF...
  10. spring 事务隔离级别和传播行为_Spring事务传播性与隔离性实战