以下源代码充当HashTable的“天真”实现。这绝不是一个很好的实现,但是它证明了我的关注:
经过测试,此代码可用于预期的目的。我不了解包含方法的工作方式。如果密钥在self.buckets中,则“ _ = self [key]”行可以毫无问题地执行。据我了解,该行应为“ _ = self.buckets [key]”。为什么self [key]可以正常工作? self [key]如何表明我们正在从self.buckets中检索项目?
答案 0 :(得分:2)
self[key]
部分正在使用在其上方定义的__getitem__
方法,该方法本身就是self.buckets[...]
的包装。因此它使用的是self.buckets
,只删除了一个步骤。
语法self[key]
基本上是Hashtable.__getitem__(self, key)
的缩写,其中self
是您的Hashtable实例。