Python 中__new__方法介绍和用法

__new__ 的作用

在Python中__new__方法与__init__方法类似,但是如果两个都存在那么__new__闲执行。

在基础类object中,__new__被定义成了一个静态方法,并且需要传递一个参数cls。Cls表示需要实例化的类,此参数在实例化时由Python解析器自动提供。

new()是在新式类中新出现的方法,它作用在构造方法init()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法init()负责将类的实例化,而在init()调用之前,new()决定是否要使用该init()方法,因为new()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例。 

new()方法的特性

new()方法是在类准备将自身实例化时调用。 

new()方法始终都是类的静态方法,即使没有被加上静态方法装饰器。

实例


结果:


学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习” 获取资料,一起学习

Python3和 Python2中__new__使用不同

Python2的写法

注意 Python 版本大于等于2.7才支持


Python3的写法


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 3,830评论 0 27
  • 转载须注明出处:简书@Orca_J35 object.__new__(cls[, ...]) 在新式类中, __n...
    import_hello阅读 262评论 0 0
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 3,081评论 0 15
  • 请给我一块面具, 能掩盖悲伤的面具, 能带着笑脸的面具。 请给我一块面具, 能淡去泪痕的面具, 能充满激情的面具。...
    春秋两不霑阅读 226评论 1 2
  • 一只鲤鱼的脸,看不到有悲伤,也看不到有喜悦,更看不到跳龙门的兴奋。鱼塘几尺见方,除了他还有几尾慢悠悠游着的黑鲫鱼,...
    天线的触角阅读 278评论 0 0