python中的重置打印函数
我刚开始研究Python,需要这方面的帮助 在壳里我做了python中的重置打印函数,python,python-3.x,Python,Python 3.x,我刚开始研究Python,需要这方面的帮助 在壳里我做了 >>> print = 1 现在当我试着打印类似的东西时 >>> print ("hello") 我得到了“TypeError:'int'对象不可调用,显然是因为现在打印的是int 我能够发现,如果我重新启动shell,print会再次正常工作 我想知道的是,如何在不重新启动shell的情况下将print重置为其原始状态,即打印到控制台?您创建了一个覆盖内置名称的全局文件。使用del删除新的全局文件
>>> print = 1
现在当我试着打印类似的东西时
>>> print ("hello")
我得到了“TypeError:'int'对象不可调用
,显然是因为现在打印的是int
我能够发现,如果我重新启动shell,print会再次正常工作
我想知道的是,如何在不重新启动shell的情况下将print
重置为其原始状态,即打印到控制台?您创建了一个覆盖内置名称的全局文件。使用del
删除新的全局文件;Python将再次找到内置文件:
del print
Python通过当前作用域(在包含局部作用域和任何父作用域的函数中)查找print
,然后是全局作用域,然后是,正是在后者中,print()
函数才有效。您有了“屏蔽”“内置的print
功能是创建一个同名变量。您可以做以下三件事之一:
内置打印功能
>>> print = 1
>>> print("Hello")
>>> Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> import builtins
>>> dir(builtins)
>>> ['ArithmeticError', 'AssertionError', 'AttributeError',
...
'print',
...
'tuple', 'type', 'vars', 'zip']
>>> print=builtins.print
>>> print("Hello")
>>> Hello
>print=1
>>>打印(“你好”)
>>>回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“int”对象不可调用
>>>进口内置设备
>>>主任(内置)
>>>[‘算术错误’、‘断言错误’、‘属性错误’,
...
“打印”,
...
“tuple”、“type”、“vars”、“zip”]
>>>print=内置。print
>>>打印(“你好”)
>>>你好
最后一个选项仍然保留一个全局选项,因此print
仍然屏蔽内置的print
。它们恰好绑定到同一个对象。是的,但这是一个很好的机会来教人们关于内置的!谢谢你@MartijnPieters