python回顾(十一)——对象管理

对象的创建

__new__方法作用

  __new__方法用于定义创建对象时执行的操作,__new__方法仅仅为用户提供一个创建对象时干预的入口,真正执行创建对象的操作由object类中的__new__方法完成

__new__方法定义

  定义__new__方法是对object类中__new__方法的重写,重写该方法时必须再次调用object类中的__new__方法

__new__方法调用

  __new__方法在创建对象时自动运行,无需手工执行调用该方法

对象的删除

del操作作用

  del操作的实质是断开变量与内存数据之间的引用,操作del执行后等同于对应变量未进行过定义

del操作执行范围

  1,删除定义的变量:功能等同于变量未定义

  

  2,删除存储模型中的数据:将数据按照变量的形式看待,功能等同于未定义过对应的数据

      列表数据报错:索引不存在

      

      元组对象报错:元组对象不支持对项的删除

      

      字典对象报错:键错误,键不存在

      

      对象中的属性:对应对象等同于该对象未定义过该属性

      

__del__方法作用

  __del__方法用于定义对象不存在任何引用时执行的操作。当对象断开了与最后一个变量之间的引用关系时,将执行该对象的__del__方法

__del__方法执行范围

  1.当手工执行断开变量与对象的最后一个引用时执行,即del操作

  2.当程序执行完毕时,所有变量对应的引用都断开,此时执行,即退出程序

__del__方法调用

  __del__方法在对象断开与最后一个变量之间的引用关系时自动执行,无需手工执行调用该方法

对象判断

对象判等概念

  当两个对象对应的引用地址相同时,称这两个对象是同一个对象

对象判等语法格式

  对象引用地址判等:

    对象名 is 对象名 或 变量名 is 变量名

  数据引用地址判定:

    数据 is 数据

  注:判等操作的结果是True或False

    3.3 ==与is的区别

  ==操作针对判定的内容不同,规则不同。例如数值性数据比较数值的大小,不考虑是整数还是小数。字符串比较字符串的内容是否相同,不考虑引用地址是否相同

  is操作只针对地址进行判定,只要地址相同即返回True,否则返回False

单例模式

单例模式的作用

  控制一个类只能创建出单个实例对象

  

单例模式书写规范

注意事项

  1.定义的类变量要进行私有化,否则可以通过类名在类的外部访问到

  2.对象的判空操作使用is进行判定

 

原文地址:https://www.cnblogs.com/sickle/p/10123376.html

时间: 2024-11-12 18:10:55

python回顾(十一)——对象管理的相关文章

【Python】Python中对象管理与垃圾回收中两个很有意思的问题

再Python中是利用引用计数来实现对象管理和垃圾回收的,即其他对象引用该对象时候,其引用计数加1,反之减1,当引用计数为0时候,被垃圾收集器回收. Python解释器对对象以及计数器的管理分为以下两步: 1)其引用计数减1 2)判断引用计数是否为0,为0的话,销毁对象 因为使用引用计数,造成两个问题,GIL和循环引用 一.GIL(Global Interpreter Lock)全局解释器锁 试想一下在多线程中使用引用计数,比如线程a,b同时引用obj,那么obj的引用计数为2. 1)当a撤销对

Python回顾与整理2:Python对象

0.说明 说对象是面向对象编程语言最重要的一部分一点也不为过,没有了"对象",面向对象将无从谈起.Python也是如此,如果无法掌握对象,你很难有大的进步与提升. 1.Python对象 (1)对象特性 Python使用对象模型来存储数据,构造任何类型的值都是一个对象,所有的Python对象都拥有下面的三个特性: 身份:每个对象一唯一身份标识,可使用内建函数id()查看该值(可以认为这个值是该对象的内在地址) 类型:对象的类型决定了对象(可以保存什么类型的值,进行什么样的操作,遵循什么样

python之文件对象

防伪码忘情公子著 文件对象是用来访问文件系统接口所对应的数据的 文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构-即在磁盘上组织文件的方法 计算机文件或称文件.电脑档案.档案是存储在某种长期储存设备或临时存储设备中的一段数据流并且归属于计算机文件系统管理之下 概括来讲 文件是计算机中由OS管理的具有名字的存储区域 在Linux系统上文件被看做是字节序列 要想把数据存储到文件中有一个前提那就是必须序列化非序列化的数据是不能简单的存储在文件系统中的文件中的 对于python来说文件对象不仅可

Python回顾与整理5:映像和集体类型

0.说明 依然是按照前面介绍的几种序列类型的思路来总结字映像类型和集合类型,即先做一个介绍,再讨论可用操作符.工厂函数.内建函数和方法. 1.映射类型:字典 映射类型被称做哈希表,而Python中的字典对象就是哈希类型,即它是按照这样的方式来存储数据:(哈希表的算法)是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储对象的值.任何一个值存储的地址取决于它的键,正因为这种随意性,哈希表中的值是没有顺序的,所以Python中的字典对象中的元素也是无序的. 下

Python回顾与整理4:序列(字符串/列表/元组)

0.说明 序列其实是Python的某几类数据类型的统称,如字符串,列表和元组,将它们统称为序列,是因为:它们的成员有序排列,并且可以通过下标偏移量访问到它的一个或者几个成员. 总结的思路为:先介绍适用于所有序列类型的操作符和内建函数,然后再分别对这几种序列类型进行介绍. 1.序列 序列类型都有相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,多个元素通过切片操作的方式得到.而在Python序列中,偏移量的规则如下(假设序列长度为N): (1)标准类型操作符 在<Python回顾与

Python深入03 对象的属性

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的管理方案. 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性(class attribute).类属性可能来自类定义自身,也可能根据类定义继承来的.一个对象的属性还可能是该对象实例定义的,叫做对象属性(object attribute). 对象

Python回顾与整理3:数字

Python回顾与整理3:数字 0.说明 数字用的次数是否多主要是看需求,如果是做自动化运维平台开发,比如做一个自动监控的系统,那么你肯定需要收集一定量的数据,然后再对这些数据做一定的处理,那么这时候,你就一定需要用得上数字的.当然,我这里所说的要不要用数字,指的是,你是否需要对你的数据做一定的处理. 1.数字简介 数字是不可更改类型,也就是说变更数字的值会生成新的对象. (1)创建数值对象并用其赋值(数字对象) >>> anInt = 1 >>> aComplex =

zg手册 之 python2.7.7源码分析(2)-- python 的整数对象和字符串对象

python 中的内置对象 python 中常用的内置对象有:整数对象,字符串对象,列表对象,字典对象.这些对象在python中使用最多,所以在实现上提供缓存机制,以提高运行效率. 整数对象 (PyIntObject) python 中的整数对象是不可变对象(immutable),即创建了一个 python 整数对象之后,不能再改变该对象的值. python 为创建整数对象提供了下面三种方法,其中 PyInt_FromString 和 PyInt_FromUnicode 内部也是调用 PyInt

2015/8/28 Python基础(2):对象

Python用对象模型来存储数据.构造任何类型的值都是一个对象.Python对象都有是三个特性:身份,类型和值 身份是每个对象的唯一身份标识.任何对象都可以用内建函数id()来得到身份.如: >>> s = 1 >>> id(s) 38249176 身份可以认为是该对象的地址. 类型是数据以何种方式保存,可以进行怎样的操作,遵循怎样的规则.可以使用内建函数type()来查看. 值就是对象的数据项. 上面三个特性在对象创建时被赋值,除值以外其他特性都是只读.对象的类型是可