R. Пэйт, кажется, имеет хороший ответ. Еще один колокольчик, который нужно добавить: если вы пишете код для запуска на многих различных версиях Python, вы можете обусловить определение:
try:
next = next
except NameError:
def next():
# blah blah etc
Таким образом, вы в любом случае определяете next
, но вы используете встроенную реализацию там, где она доступна.
Я использую next = next
, чтобы я мог поместить это определение в модуль, а затем в другое место моего кода использовать:
from backward import next