将变量分配给私有方法

ami*_*571 6 python google-app-engine

我一直在研究一个使用Google App Engine的python sdk的项目.我正在挖掘它并看到很多这样的方法.

def _put(self, bla, bla):
    do something
put = _put
Run Code Online (Sandbox Code Playgroud)

有没有理由他们像这样分配私有变量?我的意思是我没有看到将方法定义为私有然后将其分配给非私有变量的意义.为什么不让这个方法自行公开?

def put(self, bla, bla):
    do something
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的就是这样做是为了满足一些"正确的编码风格"规则.我主要感兴趣的是因为我想更好地编写适当的python代码并想知道这是否是我应该自己做的事情?

编辑:谢谢@falsetru的链接!以下是我正在谈论的内容(https://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/ndb/model.py?r=410#3340)

Gre*_*reg 3

Guido在 NDB 代码中对此模式的解释:

NDB 对于公共名称和受保护名称有不同的规则。许多(但不是全部)以下划线开头的名称实际上被视为公共 API,因为我们不想将它们的方法名称保留为属性名称。为了方便起见,我们只是为更用户友好的无下划线名称起别名(例如,真正的方法是 _put(),您应该真正使用它,但只要您没有名为的属性,我们就允许您使用 put() '放')。