【发布时间】:2015-08-07 06:59:57
【问题描述】:
我正在查看 trie implementation 的源代码
在第 80-85 行:
def keys(self, prefix=[]):
return self.__keys__(prefix)
def __keys__(self, prefix=[], seen=[]):
result = []
etc.
def __keys__是什么? 那是自创的魔法物品吗?如果是这样,这是糟糕的代码吗?或者__keys__是否作为标准的 Python 魔术方法存在?不过,我在 Python 文档的任何地方都找不到它。为什么在
def __keys__甚至实例化之前调用self.__keys__的函数是合法的?def __keys__不必在def keys之前调用(因为 @987654329 @呼叫__keys__)?
【问题讨论】:
-
def keys定义了keys函数,它实际上不会调用self.__keys__直到有人调用它,例如trie.keys()。到那时,__keys__将被定义。
标签: python trie magic-methods