千锋教育-做有情怀、有良心、有品质的职业教育机构

python 二次加工标准类型(包装)

来源:千锋教育
发布时间:2023-11-08 08:19:02
分享

包装: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相关知识,请关注IT培训机构:千锋教育。https://www.mobiletrain.org/

以上内容为大家介绍了python二次加工标准类型(包装),希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python导入dlib时出错解决方法 python中导入dlib出错的原因:没有安装dlib库。解决方法:安装dlib库pipinstalldlib安装时报这个错误:TypeError:parse()gotanunexpectedkeyw
  • python代码检测工具及区别 pep8/pycodestyle相信大家多多少少都见过PEP8,那PEP8到底是个啥?其实PEP8是一种Python代码规范指南,其目的是为了保持代码的一致性、可读性。检查自己代码是否符合PEP8规范
  • Python基础之numpy中的常见函数有哪些 有些Python小白对numpy中的常见函数不太了解,今天小编就整理出来分享给大家。Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。
  • python获取当前时间日期有哪些方法? 获取到时间也是我们在学习python遇到的常见问题,根据不同的需求,获取的方式也有所不同,下面针对获取的几个场景,给大家整理出来几个方式。一、时间日期基本介绍时间日期类型在Python中主要有两个模块
  • python yield的用法 通常大家遇到不会内容,第一想法肯定是进行搜索查找了,然而所有标题叫简单易懂并非真的如此,我在查询pythonyield就是,既然无简单易懂内容,小编就帮大家集合整理出来。结合网上教学内容,指向yiel
  • 详析python多行代码注释快捷键的用法 我们在敲击代码时,遇到不需要使用的语句,大家是否一行一行的删除?这样工作量可谓庞大,今天给大家带来关于注释的快捷键使用,一起来看看吧~关于python编程注释快捷键1、注释单行(1)方法1:直接在单行