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爬虫之抓取百度贴吧代码分享
Nov 06 Python
让 python 命令行也可以自动补全
Nov 30 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
python re模块findall()函数实例解析
Jan 19 Python
python直接获取API传递回来的参数方法
Dec 17 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
python如何用matplotlib创建三维图表
Jan 26 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 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
深入php处理整数函数的详解
2013/06/09 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
JS精确判断数据类型代码实例
2019/12/18 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
Vue实现简易计算器
2020/02/25 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
卫校毕业生自我鉴定
2013/10/31 职场文书
商务邀请函范文
2014/01/14 职场文书
文明学生标兵事迹
2014/01/21 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
抽奖活动主持词
2014/03/31 职场文书
医药销售自荐书
2014/05/29 职场文书
迎国庆演讲稿
2014/09/05 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
党支部先进事迹材料
2014/12/24 职场文书
酒桌上的开场白
2015/06/01 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL