Python使用__new__()方法为对象分配内存及返回对象的引用示例

yipeiwu_com6年前Python基础

本文实例讲述了Python使用__new__()方法为对象分配内存及返回对象的引用。分享给大家供大家参考,具体如下:

demo.py(__new__方法):

class MusicPlayer(object):
  # 为对象分配内存空间
  def __new__(cls, *args, **kwargs):
    # 1. 创建对象时,new方法会被自动调用
    print("创建对象,分配内存空间")
    # 2. 为对象分配空间
    instance = super().__new__(cls)
    # 3. 返回对象的引用
    return instance
  # 对象初始化,定义实例属性
  def __init__(self):
    print("播放器初始化")
# 创建播放器对象
player = MusicPlayer()
print(player)

运行结果:

创建对象,分配内存空间
播放器初始化
<__main__.MusicPlayer object at 0x017A41D0>

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

python定义类self用法实例解析

这篇文章主要介绍了python定义类self用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在定义类的过程中,无论是显式的...

Django RBAC权限管理设计过程详解

Django RBAC权限管理设计过程详解

一.权限简介 1. 问:为什么程序需要权限控制? 答:生活中的权限限制,① 看灾难片电影《2012》中富人和权贵有权登上诺亚方舟,穷苦老百姓只有等着灾难的来临;② 屌丝们,有没有想过为...

python 并发编程 非阻塞IO模型原理解析

python 并发编程 非阻塞IO模型原理解析

非阻塞IO(non-blocking IO) Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是...

Python 反转字符串(reverse)的方法小结

前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容。主要有三种方法: 1.切片法(最简洁的一种) #切片法 def reverse1(): s=...

Python中序列的修改、散列与切片详解

Python中序列的修改、散列与切片详解

前言 本文主要给大家介绍了关于Python中序列的修改、散列与切片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 Vector类:用户定义的序列类型   我...