我试图了解如何创建自定义打印功能。(使用python 2.7)
import sys
class CustomPrint():
def __init__(self):
self.old_stdout=sys.stdout #save stdout
def write(self, text):
sys.stdout = self.old_stdout #restore normal stdout and print
print 'custom Print--->' + text
sys.stdout= self # make stdout use CustomPrint on next 'print'
# this is the line that trigers the problem
# how to avoid this??
myPrint = CustomPrint()
sys.stdout = myPrint
print 'why you make 2 lines??...'
上面的代码将其打印到控制台:
>>>
custom Print--->why you make 2 lines??...
custom Print--->
>>>
我只想打印一行:
>>>
1custom Print--->why you make 2 lines??...
>>>
但是无法弄清楚如何使这个自定义打印工作,我知道有某种递归会触发控制台的第二个输出(我使用 self.write ,将 stdout 分配给 self.write 自己!)
我怎样才能使这项工作?还是我的方法完全错误...