为什么只在公共函数中调用私有函数?

Gio*_*oli 1 python function private-methods python-chess

当我看到以下代码时,我在神话般的python-chess库的源代码中徘徊:

def _reset_board(self):
    # code...

def reset_board(self):
    self._reset_board()
Run Code Online (Sandbox Code Playgroud)

reset_board()函数只做一件事,调用它的私有对应物.这背后有原因吗?不会将代码直接放在私有函数中更快,因为python不必解析名称_reset_board()

use*_*ica 5

_reset_board存在,所以它可以从两个reset_board__init__.__init__无法调用self.reset_board,因为该方法在子类中被重写,并且__init__想要_reset_board从它自己的类中调用特定的实现.(子类reset_board实现可能依赖于尚未发生的初始化,以及其他问题.)