O'Reilly logo
  • Chris Kang thinks this is interesting:

def make_adder_as_bound_method(augend): class Adder(object): def __init__(self, augend): self.augend = augend def add(self...

From

Cover of Python in a Nutshell, 3rd Edition

Note

Returns and method reference to an instance of Adder created on return statement.

Because this is not a closure, you need init to store the argument value passed in when creating instance of Adder object.