使用__getattr__ 进行中转
1 import time 2 3 4 class Open: 5 def __init__(self, filename, mode='r', encoding='utf-8'): 6 self.filename = open(filename, mode) 7 self.mode = mode 8 self.encoding = encoding 9 10 def write(self, line): 11 wr = getattr(self.filename, 'write') 12 wr(time.asctime() + line) 13 14 def __getattr__(self, item): 15 return getattr(self.filename, item) 16 17 18 f = Open('aaa.txt', 'w', encoding='utf-8') 19 print(f.filename) 20 f.write('nihao worlssd!') 21 print(f.read) 22 输出: