why do we invoke print after importing print_function (in Python 2.6)
为了获得3.0打印功能,我们在python 2.6中执行以下操作:
1 | from __future__ import print_function |
但要使用函数,我们调用print()而不是print_函数()。这只是不一致还是有充分的理由?
为什么不:
1 | from __future__ import print |
原因是,当你从
其他的特征包括:
1 2 3 4 5 6 7 8 9 | all_feature_names = [ "nested_scopes", "generators", "division", "absolute_import", "with_statement", "print_function", "unicode_literals", ] |
当你有你的特异性更高的代码迁移到下一个版本,你的程序仍将使用最新的特征。如《
简单的。打印是Python中的关键字。
表操作类
1 | from somewhere import print |
将是一个自动查询Python中的2。
让(硬编码它的语法)
1 | from __future__ import print |
被认为是不值得的努力。
在Python中,已改变了从
所以你现在要说而说
通过做这样的变化是effected
是目前可用的完整性,所有的特点是:
1 2 3 4 5 6 7 8 9 10 11 12 13 | +------------------+-------------+--------------+----------------------------------------------------+ | feature | optional in | mandatory in | effect | +------------------+-------------+--------------+----------------------------------------------------+ | nested_scopes | 2.1.0b1 | 2.2 | PEP 227: Statically Nested Scopes | | generators | 2.2.0a1 | 2.3 | PEP 255: Simple Generators | | division | 2.2.0a2 | 3.0 | PEP 238: Changing the Division Operator | | absolute_import | 2.5.0a1 | 3.0 | PEP 328: Imports: Multi-Line and Absolute/Relative | | with_statement | 2.5.0a1 | 2.6 | PEP 343: The"with" Statement | | print_function | 2.6.0a2 | 3.0 | PEP 3105: Make print a function | | unicode_literals | 2.6.0a2 | 3.0 | PEP 3112: Bytes literals in Python 3000 | | generator_stop | 3.5.0b1 | 3.7 | PEP 479: StopIteration handling inside generators | | annotations | 3.7.0b1 | 4.0 | PEP 563: Postponed evaluation of annotations | +------------------+-------------+--------------+----------------------------------------------------+ |
最小的例子
1 2 3 4 5 6 7 8 | >>> print # Statement. >>> from __future__ import print_function >>> print # Function object. <built-in function print> >>> print() # Function call. >>> |
在上述的_:什么是未来的_ _ _ Python中的使用和如何使用它(当它的工作,以及如何在知识
特别是
为什么不
因为:
1 | print(1) |
parsed:是的
1 2 3 | print (1) ^^^^^ ^^^ 1 2 |
而不是:
1 2 3 | print( 1 ) ^^^^^^ ^ ^ 1 2 1 |
和:
1 | assert 1 == (1) |
在上述的语法规则:Python元组尾随一个逗号