[Python-Dev] type(obj) vs. obj.__class__
Chris Angelico
rosuav at gmail.com
Sun Oct 18 20:41:44 EDT 2015
More information about the Python-Dev mailing list
Sun Oct 18 20:41:44 EDT 2015
- Previous message (by thread): [Python-Dev] type(obj) vs. obj.__class__
- Next message (by thread): [Python-Dev] type(obj) vs. obj.__class__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Oct 19, 2015 at 11:35 AM, David Mertz <mertz at gnosis.cx> wrote: > That's interesting about the `self._full` variable slowing it down, I think > I'm not surprised (but obviously it depends on just how it's used). But one > can also simply define RingBuffer.isfull() using `self.max==len(self.data)` > if you prefer that approach. I doubt `myringbuffer.isfull()` is something > you need to call in an inner loop. > > That said, I think my implementation of RingBuffer would probably look more > like (completely untested): > > class RingBuffer(object): > def __init__(self, size_max): > self.data = [None] * size_max > self.size_max = size_max > self.used = 0 > self.cur = 0 > def append(self, val): > self.data[self.cur] = val > self.cur = (self.cur+1) % self.size_max > self.used = max(self.used, self.cur+1) > def isfull(self): > self.used == self.size_max > > Feel free to try this version against whatever benchmark you have in mind. What does this provide that collections.deque(maxlen=size_max) doesn't? I'm a little lost. ChrisA
- Previous message (by thread): [Python-Dev] type(obj) vs. obj.__class__
- Next message (by thread): [Python-Dev] type(obj) vs. obj.__class__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list