Skip to content

Commit c828edd

Browse files
committed
Merge pull request faif#100 from paranoiasystem/patch-1
Update for understand the class Adapter
2 parents 93a45ff + 2d1bac9 commit c828edd

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

adapter.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ class Adapter(object):
4545
4646
>>> objects = []
4747
>>> dog = Dog()
48+
>>> print(dog.__dict__)
4849
>>> objects.append(Adapter(dog, make_noise=dog.bark))
50+
>>> print(objects[0].original_dict())
4951
>>> cat = Cat()
5052
>>> objects.append(Adapter(cat, make_noise=cat.meow))
5153
>>> human = Human()
@@ -70,12 +72,18 @@ def __init__(self, obj, **adapted_methods):
7072
def __getattr__(self, attr):
7173
"""All non-adapted calls are passed to the object"""
7274
return getattr(self.obj, attr)
73-
75+
76+
def original_dict(self):
77+
"""Print original object dict"""
78+
return self.obj.__dict__
7479

7580
def main():
7681
objects = []
7782
dog = Dog()
83+
print(dog.__dict__)
7884
objects.append(Adapter(dog, make_noise=dog.bark))
85+
print(objects[0].__dict__)
86+
print(objects[0].original_dict())
7987
cat = Cat()
8088
objects.append(Adapter(cat, make_noise=cat.meow))
8189
human = Human()
@@ -91,6 +99,9 @@ def main():
9199
main()
92100

93101
### OUTPUT ###
102+
# {'name': 'Dog'}
103+
# {'make_noise': <bound method Dog.bark of <__main__.Dog object at 0x7f631ba3fb00>>, 'obj': <__main__.Dog object at 0x7f631ba3fb00>}
104+
# {'name': 'Dog'}
94105
# A Dog goes woof!
95106
# A Cat goes meow!
96107
# A Human goes 'hello'

0 commit comments

Comments
 (0)