zoukankan      html  css  js  c++  java
  • 2019年8月14日 组合的方式完成授权

      授权:授权是包装的一个特性。授权的过程就是由新类的某部分来处理,但是已经存在的功能就授权给对象的默认属性。

    import time
    class Open:
        def __init__(self,filename,mode='r',encoding='utf-8'):
            self.file=open(filename,mode,encoding=encoding)#self.file 中封装了open的所有方法
            self.mode=mode
            self.encoding=encoding
    
        def write(self,line):#定义新write
            print('-----》',line)
            t=time.strftime('%Y-%m-%d %X')
            self.file.write('%s %s'%(t,line))
    
    
        def __getattr__(self, item):#如果没有该方法,这触发getattr,然后调用self.file中的方法
            print(item,type(item))# item是字符串,通过字符串来找到自己的方法,所以用getattr
            return getattr(self.file,item)
    
    
    
    f1=Open('a.txt','w')
    # print(f1.file)
    f1.write('abcdef
    ')
    f1.write('12345
    ')

    》》》》

    -----》 abcdef

    -----》 12345

    a.txt文件中

    2019-08-14 22:45:19 abcdef
    2019-08-14 22:45:19 12345
  • 相关阅读:
    Python基础05
    Python基础04
    Python基础03
    Python基础02
    Python基础01
    软件测试
    深入了解软件测试基础04
    深入了解软件测试基础03
    深入了解软件测试基础02
    深入了解软件测试基础01
  • 原文地址:https://www.cnblogs.com/python1988/p/11354790.html
Copyright © 2011-2022 走看看