首页 / 知识
python 二次加工标准类型(包装)
2023-11-12 13:30:00
包装:python为大家提供了标准数据类型,以及丰富的内置方法,其实在很多场景下我们都需要基于标准数据类型
来定制我们自己的数据类型,新增/改写方法,这就用到了我们刚学的继承/派生知识(其他的标准类型均可以通过下面的
方式进行二次加工)。
#基于继承的原理,来定制自己的数据类型(继承标准类型)
classList(list):#继承list所有的属性,也可以派生出自己新的,比如append和insert
defappend(self,p_object):#自己加工追加的方法
ifnotisinstance(p_object,int):#加上条件,不是int就抛出异常
raiseTypeError("mustbeint")#返回提示输入类型
#self.append(p_object)#注意:这样就无限递归了
super().append(p_object)#此时才会完成追加
definsert(self,index,p_object):#自己加工指定位置插入的方法
ifnotisinstance(p_object,int):#加上条件,不是int就抛出异常
raiseTypeError("mustbeint")#返回提示输入类型
super().insert(index,p_object)#此时才会完成插入
l1=List([0,1,2])#实例化对象l1
print(l1)#打印列表l1
l1.append(3)#对象l1追加元素3,注意必须是int
print(l1)#打印列表l1
#l1.append("5")#此时会抛出异常,"5"不是int
l1.insert(0,-1)#在下标0的位置,插入元素-1,注意元素的类型
l1.insert(5,4)#在下标5的位置,插入元素4,注意元素的类型
print(l1)#打印列表l1
print(l1.index(4))#获取元素的下标,没有派生出自己的方法的时候,会继承父类的方法
--------------------输出结果------------------------
[0,1,2]
[0,1,2,3]
[-1,0,1,2,3,4]
5
授权:授权是包装的一个特性,包装一个类型通常是对已存在的类型的一些定制,这种做法可以新建,修改或删除原有
产品的功能。其它的则保持原样。授权的过程,即是所有更新的功能都是由新类的某部分来处理,但已存在的功能就授权给
对象的默认属性。
实现授权的关键点就是覆盖__getattr__方法。
importtime
classOpen:#open是一个函数,不是类,不能用继承,so,用另一种方式:授权
def__init__(self,file_path,m="r",endoce="utf8"):
self.file=open(file_path,mode=m,encoding=endoce)#获取文件句柄
self.file_path=file_path#文件路径
self.mode=m#文件打开模式
self.encoding=endoce#文件的编码方式
defwrite(self,line):#写入文件
t=time.strftime("%Y-%m-%d%X")#获取时间格式
self.file.write("%s--->%s"%(t,line))#前面加上时间,按格式写入
def__getattr__(self,item):#当方法不存在的时候,会触发它的执行
returngetattr(self.file,item)#获取文件其他的方法,并返回给对象
f1=Open("a.txt","w")#实例化对象f1,创建文件a.txt,以w模式
f1.write("1、你好,我摩旅去了!\n")#按自己加工的方法写入内容
f1.write("2、你好,我摩旅去了!\n")#按自己加工的方法写入内容
f1.write("3、你好,我摩旅去了!\n")#按自己加工的方法写入内容
f1.close()#关闭文件
f2=Open("a.txt","r")#实例化对象f2,查看文件a.txt,以r模式
print(f2.read())#打印输出a.txt的文件内容
f2.seek(0)#刚看完,光标走到最后位置了。要想再看,就得把光标调到最开始位置
print("-->:",f2.read())#加上标识,再看一遍
f2.close()#关闭文件
以上内容为大家介绍了Python增强,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
以上内容为大家介绍了python二次加工标准类型(包装),希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython实现批量文件的压缩处理
Python实现批量文件的压缩处理,项目,信息,分析,数据,软件,培训,文件夹,文件,源文件,目标,一、前言接到项目求助,需要对上千个文件夹中的文件进Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文Python如何在后台自动解压各种压缩
Python如何在后台自动解压各种压缩文件?,代码,综合,工具,分析,检测,培训,文件,文件夹,模块,结尾,一、需求描述编写一个Python程序,每次下载压提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python处理文件的几个常用小知识
Python处理文件的几个常用小知识,数据,代码,信息,文件,系统,培训,分析,交通,名称,名字,python这门语言有个很大的用途就是使用它来进行文件处Python标准库之collections模块
Python标准库之collections模块,名字,标准,信息,电话号码,培训,工厂,位置,简介,异常,对象,collections模块简介collections是Python标准库里Python集合和时间复杂度
Python集合和时间复杂度,项目,时间,数据,数字,照片,情况,通用,培训,平均,表示,在本文的这一部分中,我将记录CPython中的常见集合,然后概述它们Python中字典合并的实现方法
Python中字典合并的实现方法,培训,结果,以上,版本,字典,方法,函数,下面,背景,发现,TableofContents背景Methon1:适用于Python3.5及以上版本呢M学习python的三种方法
学习python的三种方法,项目,代码,公司,时间,工程,培训,中级,初级,资料,第一,Python的用途十分广泛,不同的程序员将其用于不用的领域,不同的程序