Я смотрю на исходный код для trie implementationМагические методы и определение порядка
В строках 80-85:
def keys(self, prefix=[]):
return self.__keys__(prefix)
def __keys__(self, prefix=[], seen=[]):
result = []
etc.
Что такое
def __keys__
? Это волшебный объект, который создан самостоятельно? Если да, то этот плохой код? Или__keys__
существуют в качестве стандартного метода магии Python? Однако я не могу найти его нигде в документации Python.Почему это законно для функции для звонка
self.__keys__
до того, какdef __keys__
даже экземпляр? Не былоdef __keys__
должно быть раньшеdef keys
(сkeys
звонки__keys__
)?
- это код, инкапсулированный в 'class ..:'? или это файл .py? (да, это важно для моего объяснения) – Henrik
@ Хенрик, возможно, посмотрите ссылку на источник? – Enerccio
'def keys' определяет функцию' keys', она фактически не называет 'self .__ keys__', пока кто-то не называет ее, например. 'Trie.keys()'. К этому моменту будет определено '__keys__'. –