Я смотрю на раздел Деревья бинарного поиска в учебном пособии «Решение проблем с помощью алгоритмов и структур данных», (http://interactivepython.org/runestone/static/pythonds/Trees/SearchTreeImplementation.html). Несколько раз они используют вспомогательные и публичные методы с вспомогательными то же имя, например, для метода "put":
def put(self,key,val):
if self.root:
self._put(key,val,self.root)
else:
self.root = TreeNode(key,val)
self.size = self.size + 1
def _put(self,key,val,currentNode):
if key < currentNode.key:
if currentNode.hasLeftChild():
self._put(key,val,currentNode.leftChild)
else:
currentNode.leftChild = TreeNode(key,val,parent=currentNode)
else:
if currentNode.hasRightChild():
self._put(key,val,currentNode.rightChild)
else:
currentNode.rightChild = TreeNode(key,val,parent=currentNode)
Я также видел этот подход в другом месте, но я не совсем понимаю мотивацию. В чем преимущество по сравнению с непосредственным объединением всего одного метода, это просто для улучшения читабельности?