您的位置:首页 > 编程语言 > Python开发

python基础之类的内置__setattr__,__delattr__,__getattr__和 二次加工标准类型(包装)

2017-04-24 18:07 417 查看

一、内置attr:__setattr__,__delattr__,__getattr__

__setattr__ #添加/修改属性会触发它的执行

__delattr__ #删除属性的时候会触发

__getattr__ #只有在调用属性且属性不存在的时候才会触发

#不能用继承,来实现open函数的功能
# f=open('a.txt','w')
# print(f)
# f.write('1111111')

#授权的方式实现定制自己的数据类型
import time

class Open:
def __init__(self,filepath,m='r',encode='utf-8'):
self.x=open(filepath,mode=m,encoding=encode)

self.filepath=filepath
self.mode=m
self.encoding=encode

def write(self,line):
print('f自己的write',line)
t=time.strftime('%Y-%m-%d %X')
self.x.write('%s %s' %(t,line))

def __getattr__(self, item):
# print('=------>',item,type(item))
return getattr(self.x,item)
#
# f=Open('b.txt','w')
# # print(f)
# f.write('111111\n')
# f.write('111111\n')
# f.write('111111\n')

f=Open('b.txt','r+')
# print(f.write)
print(f.read)

res=f.read() #self.x.read()
print(res)

print('=-=====>',f.read())
f.seek(0)
print(f.read())
# f.flush()
# f.close()


授权的方式实现定制自己的数据类型

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: