【发布时间】:2019-03-25 23:37:30
【问题描述】:
以下源代码用作 HashTable 的“简单”实现。这绝不是一个很好的实现,但它证明了我的担忧:
经过测试,此代码可用于其预期目的。我不明白 contains 方法是如何工作的。如果密钥在 self.buckets 中,“_ = self[key]”行将毫无问题地执行。据我了解,该行应该是“_ = self.buckets[key]”。为什么 self[key] 工作得一样好? self[key] 如何表明我们正在从 self.buckets 中检索项目?
【问题讨论】:
-
你好,不要贴代码图片,而是粘贴代码并在编辑器中格式化。
-
__getitem__处理类对象上类似字典的访问,self['item'] == self.__getitem__('item') -
理解非常重要:
self不是关键字。它是传统上赋予方法的第一个参数的名称。当在实例上调用方法时,实例会自动绑定到该方法并“神奇地”作为第一个参数传递。但你可以调用第一个参数banana或任何你想要的,这没关系
标签: python hashmap jupyter-notebook