本文整理汇总了Python中weakref.WeakValueDictionary.__getitem__方法的典型用法代码示例。如果您正苦于以下问题:Python WeakValueDictionary.__getitem__方法的具体用法?Python WeakValueDictionary.__getitem__怎么用?Python WeakValueDictionary.__getitem__使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weakref.WeakValueDictionary
的用法示例。
在下文中一共展示了WeakValueDictionary.__getitem__方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __getitem__
# 需要导入模块: from weakref import WeakValueDictionary [as 别名]
# 或者: from weakref.WeakValueDictionary import __getitem__ [as 别名]
def __getitem__(self, key):
frozen_key = freeze(key)
if frozen_key in self:
return WeakValueDictionary.__getitem__(self, frozen_key)
value = self.lookup(key)
self[frozen_key] = value
return value
示例2: __init__
# 需要导入模块: from weakref import WeakValueDictionary [as 别名]
# 或者: from weakref.WeakValueDictionary import __getitem__ [as 别名]
class LRUCache:
def __init__(self, max_size):
self.LRU = [Node(time(), "none%s"%i) for i in range(max_size)]
self.search = WeakValueDictionary()
for i in self.LRU:
self.search[i.name] = i
def __setitem__(self, name, value):
q = self.search.get(name, None)
if q:
q.data = value
q.time = time()
else:
lru = self.LRU[0]
self.search.pop(lru.name)
lru.data = value
lru.time = time()
lru.name = name
self.search[lru.name] = lru
self.LRU.sort()
def get(self, name, default=None):
pos = None
try:
pos = self.search.__getitem__(name)
pos.time = time()
return pos.data
except KeyError:
if default is not None:
return default
else:
raise
示例3: __getitem__
# 需要导入模块: from weakref import WeakValueDictionary [as 别名]
# 或者: from weakref.WeakValueDictionary import __getitem__ [as 别名]
def __getitem__(self, key):
value = WeakValueDictionary.__getitem__(self, key)
# check boundaries to minimiza duplicate references
while len(self.queue) > 0 and self.queue[0][0] == key:
# item at left end of queue pop it since it'll be appended
# to right
self.queue.popleft()
# only append if item is not at right end of queue
if not (len(self.queue) and self.queue[-1][0] == key):
self.queue.append((key, value))
return value
示例4: __getitem__
# 需要导入模块: from weakref import WeakValueDictionary [as 别名]
# 或者: from weakref.WeakValueDictionary import __getitem__ [as 别名]
def __getitem__(self, k):
v = WeakValueDictionary.__getitem__(self, k) # KeyError if not found
self.keep_this(v)
return v