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中使用matplotlib模块绘制数据图的示例
May 04 Python
Python常用小技巧总结
Jun 01 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
Python列表删除的三种方法代码分享
Oct 31 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
Python的信号库Blinker用法详解
Dec 31 Python
python 实现德洛内三角剖分的操作
Apr 22 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
各个系统下的Python解释器相关安装方法
2015/10/12 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python3实现随机数
2018/06/25 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
道路交通安全实施方案
2014/03/12 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
工作推荐信范文
2014/05/10 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
音乐学专业求职信
2014/07/22 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
感恩节寄语2015
2015/03/24 职场文书
责任书范本大全
2015/05/11 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
Windows7下FTP搭建图文教程
2022/08/05 Servers