我想有一個別名來打印語句。下面的方法將失敗,SyntaxError
:將變量設置爲「打印」python 2
>>> a = print
我如何,如果在所有設置打印語句一個新的別名? Python版本 - > 2.7
我想有一個別名來打印語句。下面的方法將失敗,SyntaxError
:將變量設置爲「打印」python 2
>>> a = print
我如何,如果在所有設置打印語句一個新的別名? Python版本 - > 2.7
通常情況下,你不能影子蟒蛇關鍵字(這是用來使Python 「聲明」,如print
,for
,exec
,if
,...)。但是,print
是特別的。爲了緩和與python3.x的兼容性,可以使用
from __future__ import print_function
在模塊的頂部跌落打印語句(在任何其他進口其他非__future__
進口)。
這將禁用print
語句並取消對print
function(然後您可以再次使用您想要的任何用戶定義的函數進行遮蔽)。例如(來自REPL):
Python 2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import print_function
>>> def foo(): pass
...
>>> print = foo
>>>
>>> print('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foo() takes no arguments (1 given)
雖這麼說,我認爲走樣內建函數通常是一個壞主意。未來的代碼讀者(包括您自己)在嘗試使用此代碼時可能會感到困惑,並且他們不會做他們有條件相信的事情。記住蟒(import this
)禪:
...
可讀性計數。
...
你真的不應該這樣做。只需定義你的特殊'my_print()'函數並使用它來代替'print'。原因之一是很多其他代碼使用'print',例如顯示錯誤信息,並且您可能無法看到這些錯誤。 – taleinat
你可以做到這一點,但首先你必須在你的模塊中導入'print_function'。 –