logo

... method chains: args



Notes

This is the class that we had before.

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

    def keep(self, func):
        return Clumper([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, *funcs):
        data = self.blob 
        for func in funcs:
            data = [d for d in data if func(d)]
        return Clumper(data)

We can still perform commands in a chain.

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

But we could also put all of our filtering functions into one keep call.

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

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



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