Python小技巧

  • isinstance当实例为子类的实例,类为其父类,依然返回true
  • 动态导入类模块:
import importlib
importlib.import_module(包的字符串类型位置)
  • 加工原来类的两种方法
  • 继承这个类,调用父类的方法作为辅助
  • 利用__getattr__封装一个对象
#_*_coding:utf-8_*_
__author__ = 'jatrix'
#我们来加上b模式支持
import time
class FileHandle:
    def __init__(self,filename,mode='r',encoding='utf-8'):
        if 'b' in mode:
            self.file=open(filename,mode)
        else:
            self.file=open(filename,mode,encoding=encoding)
        self.encoding=encoding

    def write(self,line):
        t=time.strftime('%Y-%m-%d %T')
        if 'b' in self.mode:
            msg=bytes('%s %s' %(t,line),encoding=self.encoding)
        self.file.write(msg)

    def __getattr__(self, item):
        return getattr(self.file,item)

f1=FileHandle('b.txt','wb')
f1.write('你好啊啊啊啊啊') #自定制的write,不用在进行encode转成二进制去写了,简单,大气
f1.close()

你可能感兴趣的:(Python小技巧)