Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的重置打印函数_Python_Python 3.x - Fatal编程技术网

python中的重置打印函数

python中的重置打印函数,python,python-3.x,Python,Python 3.x,我刚开始研究Python,需要这方面的帮助 在壳里我做了 >>> print = 1 现在当我试着打印类似的东西时 >>> print ("hello") 我得到了“TypeError:'int'对象不可调用,显然是因为现在打印的是int 我能够发现,如果我重新启动shell,print会再次正常工作 我想知道的是,如何在不重新启动shell的情况下将print重置为其原始状态,即打印到控制台?您创建了一个覆盖内置名称的全局文件。使用del删除新的全局文件

我刚开始研究Python,需要这方面的帮助

在壳里我做了

>>> print = 1
现在当我试着打印类似的东西时

>>> print ("hello")
我得到了
“TypeError:'int'对象不可调用
,显然是因为现在打印的是int

我能够发现,如果我重新启动shell,print会再次正常工作

我想知道的是,如何在不重新启动shell的情况下将
print
重置为其原始状态,即打印到控制台?

您创建了一个覆盖内置名称的全局文件。使用
del
删除新的全局文件;Python将再次找到内置文件:

del print
Python通过当前作用域(在包含局部作用域和任何父作用域的函数中)查找
print
,然后是全局作用域,然后是,正是在后者中,
print()
函数才有效。

您有了“屏蔽”“内置的
print
功能是创建一个同名变量。您可以做以下三件事之一:

  • 退出python并重新启动它。这保证会起作用。:-)
  • 按照@MartijnPieters的建议,删除您创建的变量
  • 更改新变量以引用
    内置打印功能
  • 对于最后一个选项,您需要导入内置项

    >>> 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