Как вернуть обратно переопределенную встроенную функцию python?
Когда я изучал решение проблемы StackOverflow, Python Use User Defined String Class, я пришел с этим странным поведением python.
def overriden_print(x):
print "Overriden in the past!"
from __future__ import print_function
print = overriden_print
print("Hello World!")
Вывод:
Слишком поздно!
Теперь, как я могу вернуть исходное поведение print
в интерпретаторе python?
Ответы
Ответ 1
Просто удалите переопределение:
del print
Это удаляет имя из словаря globals()
, позволяя поиску возвращаться к встроенным.
Вы всегда можете обратиться непосредственно к встроенному через модуль __builtin__
:
import __builtin__
__builtin__.print('Printing with the original built-in')
В Python 3 модуль был переименован в builtins
.