python print 函数与print语句区别
2017-07-11 14:25
756 查看
print语句与print函数的区别
print语句
在Python 2中,print语句最简单的使用形式就是print A,这相当于执行了
sys.stdout.write(str(A) + '\n')。如果你以逗号为分隔符,传递额外的参数(argument),这些参数会被传递至
str()函数,最终打印时每个参数之间会空一格。例如,
print A, B, C相当于
sys.stdout.write(' '.join(map(str, [A, B, C])) + '\n')。如果print语句的最后再加上一个逗号,那么就不会再添加断行符(
\n),也就是说:
print A相当于
sys.stdout.write(str(A))。
从 2.0版本开始,Python引入了
print >>的语法,作用是重定向
print >> output, A相当于
output.write(str(A) + '\n')。
print函数
如果用Python来实现print函数,它的函数定义应该是这样的:import sys def print(*objects, sep=None, end=None, file=None, flush=False): """A Python translation of the C code for builtins.print(). """ if sep is None: sep = ' ' if end is None: end = '\n' if file is None: file = sys.stdout file.write(sep.join(map(str, objects)) + end) if flush: file.flush()
从上面的代码中,我们可以发现:Python 3中的print函数实现了print语句的所有特性。
print A == print(A) print A, B, C == print(A, B, C) print A, == print(A, end='') print >> output, A == print(A, file=output)
从上面的示例代码中我们就可以看出,使用print函数有明显的好处:与使用print语句相比,我们现在能够指定其他的分隔符(separator)和结束符(end string)。
关键在于灵活性
将print变成函数的真正巧妙之处在与灵活性,但这点并不容易被人发觉。print成为函数之后,给Python用户和Python开发团队带来了很大的灵活性。对于用户来说,这可以让你把# 手动实现 ... print A, '...' # 可复用的实现(这种方式也适用于print函数) ... def ellipsis_print(*args): for arg in args: print arg, '', print '...'
但是在Python 3中,你可以选择更好的解决方式:
# 手动实现 ... print(A, end='...\n') # 多个可复用的解决方案,利用print语句无法实现... ellipsis_print = lambda *args, **kwargs: print(*args, **kwargs, end='...\n') # 或者 ... import functools ellipsis_print = functools.partial(print, end='...\n')
换句话说,变成函数之后,
builtins.print,就可以覆盖掉自带的函数实现了。这一点在Python
2中是不可能实现的。
对于Python开发团队来说,他们不必再从语法层面来实现
我们还要注意,语法实现应该仅限于那些非这样做不可的功能,或者是以语法形式实现后,大幅提高了可读性的功能。在
print A与
print(A)之间的区别可以忽略不计,因此并没有影响可读性。而且,由于我们能够完全将
相关文章推荐
- 简单总结echo()和print()、require()和include()等易混淆函数的区别
- Python print函数用法,print 格式化输出
- Python Print函数用法
- var_dump,var_export,print_r三个函数的区别
- 在SQL语句中使用函数的限制及过程与函数的区别
- 存储过程与函数的区别,函数可以嵌入sql语句from中使用,存储过程不行
- Python3.2 --- Print函数用法
- Python Print函数用法
- Python print函数用法,print 格式化输出
- Python print函数用法,print 格式化输出
- 简单总结echo()和print()、require()和include()等易混淆函数的区别
- php 中 echo()和print()两个输出函数的区别(基础)
- Python 学习笔记(一)语句,变量,函数
- Python Print函数用法
- Python3.2 --- Print函数用法
- 关于echo与print语句的区别
- php echo()和print()、require()和include()函数区别说明
- Python体验(01)-变量、函数和基本控制语句
- php中echo()和print()、require()和include()等易混淆函数的区别
- Python print函数用法,print 格式化输出