自己实现 python print 函数
今天复习 Python 的输入输出,看到之前的笔记只写了 print 的底层是 sys.stdout, 而没有再细说。于是,心想它是怎么使用 sys.stdout 实现的呢? 于是又仔细研究了一下 python 函数的各个参数,遂自己写了一个 print。 就当练习语法和玩耍了,哈哈。
知识点
多值参数 一个
*
: 元组; 两个星*
: 字典列表推导式
sys.stdout
标准输出流-
if-else 表达式,还是
or
写的过程中, 我本来准备将file
参数设置成None
的, 因为按理说,可变对象参数需要使用 None 作为的默认值,从而避免对编译时生成的默认参数对象进行修改,造成意外事故。如果要使用
file=None
的话,那输出那里就需要判断一下1
2
3
4if file:
file.write(output_content)
else:
sys.stdout.write(output_content)但是,感觉很不简洁,于是使用
or
进行条件判断,并好奇 if-else 和 or 的优劣,就搜索到了 stackoverflow 的文章,还是or
性能好。1
2sys.stdout = file or sys.stdout
sys.stdout.write(output_content)最终我又换成了
file=sys.stdout
,根据:
代码
1 | #!/usr/bin/env python |