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 Django模板的使用方法(图文)
Nov 04 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
python2.7和NLTK安装详细教程
Sep 19 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
python实现超市商品销售管理系统
Oct 25 Python
python设置环境变量的作用整理
Feb 17 Python
django中的数据库迁移的实现
Mar 16 Python
使用python计算三角形的斜边例子
Apr 15 Python
python中@property的作用和getter setter的解释
Dec 22 Python
M1芯片安装python3.9.1的实现
Feb 02 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函数常用用法小结
2010/02/08 PHP
php中hashtable实现示例分享
2014/02/13 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php实现简易计算器
2020/08/28 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
浅谈Python数据类型之间的转换
2016/06/08 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python中反射和描述器总结
2018/09/23 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
浅谈django 重载str 方法
2020/05/19 Python
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
普通党员四风问题对照检查材料
2014/09/27 职场文书
教师个人培训总结
2015/02/11 职场文书