
Python не запрещает создавать переменные и функции с именами, идентичными встроенным. Шутки ради переопределим print:
import sys # счастилвой отладки! def print(*values, sep=' ', end='\n', file=sys.stdout, flush=False): # шутка def joke(value): if type(value) is str: value = value[::-1] elif type(value) is int: value += 1 return value # отсюда достанем исходную версию print import builtins return builtins.print(*map(joke, reversed(values)), sep=sep, end=end, file=file, flush=flush) print('Hello, world!', '2 x 2 =', 4) # 5 = 2 x 2 !dlrow ,olleH
Мораль такова. Во-первых, нужно быть внимательным, когда даешь имена своим переменным и функциям, чтобы случайно не перекрыть встроенные имена, что может нарушить работу программы. Хорошая IDE вас, конечно, предупредит о перекрытии имен. Во-вторых, это иногда применимо для отладки или тестирования. Но помните, что программист, читающий ваш код, ожидает от встроенных функций их обычного нормального поведения, а не того, которое вы придумали. Лучше создать обертку с явно другим именем.
🤩 Специально для канала @pyway. Подписывайтесь на мой канал в Телеграм @pyway!👈