python__new__内置静态方法使用解析


Posted in Python onJanuary 07, 2020

这篇文章主要介绍了python__new__内置静态方法使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用类名()创建对象时,python解释器会调用__new__方法来为对象分配空间。__new__是一个由object基类提供的内置静态方法,主要作用有两个:

(1)在内存中为对象分配空间

(2)返回对象的引用

python的解释器在获得对象的引用之后,将引用作为第一个参数,传递给__intit__方法。

重写__new__方法的代码非常固定:重写__new__方法一定要return super().__new__(cls),否则python解释器会得不到分配了空间的对象引用,就不会调用对象的初始化方法。

class MusicPlayer:
  def __new__(cls, *args, **kwargs):
    print("创建对象,分配空间")

  def __init__(self):
    print("播放器初始化")
player = MusicPlayer()
print(player)

输出:

python__new__内置静态方法使用解析

需要返回 return super().__new__(cls)

python所有类都有一个基类object,在object中默认的__new__方法已经封装了为对象分配空间的动作。

class MusicPlayer(object):
  def __new__(cls, *args, **kwargs):
    print("创建对象,分配空间")
    instance = super().__new__(cls)
    return instance

  def __init__(self):
    print("播放器初始化")
player = MusicPlayer()
print(player)

输出:

python__new__内置静态方法使用解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Python中的urllib模块使用详解
Jul 07 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
Python科学计算之Pandas详解
Jan 15 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
python自动点赞功能的实现思路
Feb 26 Python
python和php哪个更适合写爬虫
Jun 22 Python
python实现斗地主分牌洗牌
Jun 22 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 #Python
python单例设计模式实现解析
Jan 07 #Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 #Python
linux环境下安装python虚拟环境及注意事项
Jan 07 #Python
Python包,__init__.py功能与用法分析
Jan 07 #Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 #Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 #Python
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
php下使用以下代码连接并测试
2008/04/09 PHP
PHP 万年历实现代码
2012/10/18 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
CentOS7安装Python3的教程详解
2019/04/10 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
大学毕业感言一句话
2014/02/06 职场文书
抽样调查项目计划书
2014/04/24 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书