|
@@ -41,14 +41,14 @@ class Adapter(object):
|
|
|
|
|
|
>>> objects = []
|
|
|
>>> dog = Dog()
|
|
|
- >>> objects.append(Adapter(dog, dict(make_noise=dog.bark)))
|
|
|
+ >>> objects.append(Adapter(dog, make_noise=dog.bark))
|
|
|
>>> cat = Cat()
|
|
|
- >>> objects.append(Adapter(cat, dict(make_noise=cat.meow)))
|
|
|
+ >>> objects.append(Adapter(cat, make_noise=cat.meow))
|
|
|
>>> human = Human()
|
|
|
- >>> objects.append(Adapter(human, dict(make_noise=human.speak)))
|
|
|
+ >>> objects.append(Adapter(human, make_noise=human.speak))
|
|
|
>>> car = Car()
|
|
|
>>> car_noise = lambda: car.make_noise(3)
|
|
|
- >>> objects.append(Adapter(car, dict(make_noise=car_noise)))
|
|
|
+ >>> objects.append(Adapter(car, make_noise=car_noise))
|
|
|
|
|
|
>>> for obj in objects:
|
|
|
... print('A {} goes {}'.format(obj.name, obj.make_noise()))
|
|
@@ -58,7 +58,7 @@ class Adapter(object):
|
|
|
A Car goes vroom!!!
|
|
|
"""
|
|
|
|
|
|
- def __init__(self, obj, adapted_methods):
|
|
|
+ def __init__(self, obj, **adapted_methods):
|
|
|
"""We set the adapted methods in the object's dict"""
|
|
|
self.obj = obj
|
|
|
self.__dict__.update(adapted_methods)
|
|
@@ -71,13 +71,13 @@ class Adapter(object):
|
|
|
def main():
|
|
|
objects = []
|
|
|
dog = Dog()
|
|
|
- objects.append(Adapter(dog, dict(make_noise=dog.bark)))
|
|
|
+ objects.append(Adapter(dog, make_noise=dog.bark))
|
|
|
cat = Cat()
|
|
|
- objects.append(Adapter(cat, dict(make_noise=cat.meow)))
|
|
|
+ objects.append(Adapter(cat, make_noise=cat.meow))
|
|
|
human = Human()
|
|
|
- objects.append(Adapter(human, dict(make_noise=human.speak)))
|
|
|
+ objects.append(Adapter(human, make_noise=human.speak))
|
|
|
car = Car()
|
|
|
- objects.append(Adapter(car, dict(make_noise=lambda: car.make_noise(3))))
|
|
|
+ objects.append(Adapter(car, make_noise=lambda: car.make_noise(3)))
|
|
|
|
|
|
for obj in objects:
|
|
|
print("A {0} goes {1}".format(obj.name, obj.make_noise()))
|