logo

... method chains.


Method chains are an amazing programming pattern if you're building an API that needs to be expressive in how it changes data. In this series of video's we will make a pandas-like datacontainer for lists of dictionaries.


Notes

This is the class that we had before.

class Clumper:
    def __init__(self, blob):
        self.blob = blob 

    def keep(self, func):
        return [d for d in self.blob if func(d)]

This is the class that we have now.

class Clumper:
    def __init__(self, blob):
        self.blob = blob 

    def keep(self, func):
        return Clumper([d for d in self.blob if func(d)])

You'll note that we can now chain commands together.

(Clumper(poke_dict)
  .keep(lambda d: 'Grass' in d['type'])
  .keep(lambda d: d['hp'] < 60)
  .blob)

There's an improvement that we could make now though.


Feedback? See an issue? Something unclear? Feel free to mention it here.

If you want to be kept up to date, consider getting the newsletter.