2013-07-21 52 views
4

虽然遵循python教程,但我知道我们可以使用print作为变量名,并且它工作正常。但是在分配打印变量后,我们如何取回原始打印功能?使用打印作为python中的变量名称

>>> print("Hello World!!") 
Hello World!!! 
>>> print = 5 
>>> print("Hi") 

现在,最后调用给出了错误类型错误:“诠释”对象不是可调用,因为现在打印具有整数值5

但是,我们如何找回原来的功能现在打印?我们应该使用打印功能的类名或什么? 如在,SomeClass.print("Hi")

在此先感谢。

回答

18
>>> print = 5 
>>> print = __builtins__.print 
>>> print("hello") 
hello 
+3

哇。我错了:p。 +1因为我从来没有知道这 – TerryA

+0

所以在这里,__builtins__是什么?这是用于命名内置函数吗? – Albin

+6

@stRIker:它是CPython的实现细节。你也可以使用['builtins'模块](http://docs.python.org/3/library/builtins.html)。 –

8

实际上,你可以删除此变量,内置的功能将再次合作:如果你想作为一个临时的方式来使用

>>> print = 5 
>>> print('cabbage') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not callable 
>>> del print 
>>> print('cabbage') 
cabbage 
+0

是的,我也可以用这个。 – Albin

5

,做他们,但在那之后,申请print功能print变量:

print = __builtins__.print