Понимание ключевого слова self в python - PullRequest
0 голосов
/ 26 марта 2019

Следующий исходный код служит «наивной» реализацией HashTable.Это ни в коем случае не очень хорошая реализация, но она служит демонстрацией моей заботы: enter image description here

При тестировании этот код работает по назначению.Я не понимаю, как работает метод , содержащий .Строка «_ = self [key]» выполняется без проблем, если ключ находится в self.buckets.Насколько я понимаю, строка должна быть «_ = self.buckets [key]».Почему self [key] работает так же хорошо?Как self [key] указывает, что мы получаем элемент из self.buckets?

1 Ответ

2 голосов
/ 26 марта 2019

Часть self[key] использует определенный выше __getitem__ метод, который сам по себе является оберткой вокруг self.buckets[...]. Так что он использует self.buckets, только один шаг удален.

Синтаксис self[key] по существу короток для Hashtable.__getitem__(self, key), где self - ваш экземпляр Hashtable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...