I noticed it at work with functools.partial and also in python source code itself. E.g. below from collections.py
from operator import itemgetter as _itemgetter, eq as _eq
from keyword import iskeyword as _iskeyword
import sys as _sys
import heapq as _heapq
What is the rationale for doing so? If this was C++ I understand it could cause namespace conflicts however in python wouldn't these names be local to the module in which they are imported? Unless someone does import *, but that's discouraged so I'm not sure that's the reason.