python重写内置函数_重写内置函数print

print函数的本质是什么

本质上说, print函数将要输出的对象转化为字符串对象,中间加上分隔符(空格),末尾添上终止符(换行符),然后交给sys.stdout(标准输出)对象的write方法,打印在终端屏幕上。

了解这个本质后,我们只要将sys.stdout对象的默认输出位置从’屏幕终端’改变为我们指定的其它拥有write方法的对象–文件对象或类文件对象(如拥有write方法的自定义类对象).

import sys

sys.stdout = open('outputfile.txt', 'a')

print('此内容将不会在屏幕打印,而是写入outputfile.txt文件中')

当然,最好是通过变量赋值的方式将原始的sys.stdout先保留,以便后续恢复。

import sys

temp = sys.stdout

sys.stdout = open('outputfile.txt', 'a')

print('此内容将不会在屏幕打印,而是写入outputfile.txt文件中')

sys.stdout = temp # 恢复默认

print('此内容将在屏幕打印')

注意:

以上只是为了理解print和stdout的关系。实际上Python3中,print函数本身就有参数可以指定输出对象:

重写Python 3.X的print函数

v1 — 此版本会忽略额外输入的keyword arg

v2 — 此版本类似原版print,输入额外keyword arg会报错

此版本只适用于3.X,因为3.X才支持所谓的keyword-only arguments – – 即,在*args后的参数必须是keyword-only argument

v3 — 适用于2.X和3.X,输入额外keyword arg时,主动抛出错误

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页