On 2019-01-18 23:02, Greg Ewing wrote: > MRAB wrote: > If I want to cache some objects, I put them in a dict, using the id as >> the key. If I wanted to locate an object in a cache and didn't have >> id(), I'd have to do a linear search for it. > > That sounds dangerous. An id() is only valid as long as the object > it came from still exists, after which it can get re-used for a different > object. So when an object is flushed from your cache, you would have > to chase down all the places its id is being stored and eliminate them. > > Are you sure you couldn't achieve the same thing more safely using > weak references? > I'm not storing the id anywhere else. I could've used a list for the cache, but then when I wanted to remove an object I'd have to search for it, O(n). Using a dict makes it O(1).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4