@@ -41,6 +41,24 @@ class Adapter(object):
41
41
Usage:
42
42
dog = Dog
43
43
dog = Adapter(dog, dict(make_noise=dog.bark))
44
+
45
+ >>> objects = []
46
+ >>> dog = Dog()
47
+ >>> objects.append(Adapter(dog, dict(make_noise=dog.bark)))
48
+ >>> cat = Cat()
49
+ >>> objects.append(Adapter(cat, dict(make_noise=cat.meow)))
50
+ >>> human = Human()
51
+ >>> objects.append(Adapter(human, dict(make_noise=human.speak)))
52
+ >>> car = Car()
53
+ >>> car_noise = lambda: car.make_noise(3)
54
+ >>> objects.append(Adapter(car, dict(make_noise=car_noise)))
55
+
56
+ >>> for obj in objects:
57
+ ... print("A", obj.name, "goes", obj.make_noise())
58
+ ('A', 'Dog', 'goes', 'woof!')
59
+ ('A', 'Cat', 'goes', 'meow!')
60
+ ('A', 'Human', 'goes', "'hello'")
61
+ ('A', 'Car', 'goes', 'vroom!!!')
44
62
"""
45
63
def __init__ (self , obj , adapted_methods ):
46
64
"""We set the adapted methods in the object's dict"""
@@ -52,21 +70,6 @@ def __getattr__(self, attr):
52
70
return getattr (self .obj , attr )
53
71
54
72
55
- def main ():
56
- objects = []
57
- dog = Dog ()
58
- objects .append (Adapter (dog , dict (make_noise = dog .bark )))
59
- cat = Cat ()
60
- objects .append (Adapter (cat , dict (make_noise = cat .meow )))
61
- human = Human ()
62
- objects .append (Adapter (human , dict (make_noise = human .speak )))
63
- car = Car ()
64
- car_noise = lambda : car .make_noise (3 )
65
- objects .append (Adapter (car , dict (make_noise = car_noise )))
66
-
67
- for obj in objects :
68
- print ("A" , obj .name , "goes" , obj .make_noise ())
69
-
70
-
71
73
if __name__ == "__main__" :
72
- main ()
74
+ import doctest
75
+ doctest .testmod ()
0 commit comments