| 14 | |
| 15 | |
| 16 | class defaultdict(dict): |
| 17 | def __init__(self, default=None): |
| 18 | dict.__init__(self) |
| 19 | self.default = default |
| 20 | |
| 21 | def __getitem__(self, key): |
| 22 | try: |
| 23 | return dict.__getitem__(self, key) |
| 24 | except KeyError: |
| 25 | return self.default |
| 26 | |
| 27 | def get(self, key, *args): |
| 28 | if not args: |
| 29 | args = (self.default,) |
| 30 | return dict.get(self, key, *args) |
| 31 | |
| 32 | def merge(self, other): |
| 33 | for key in other: |
| 34 | if key not in self: |
| 35 | self[key] = other[key] |
| 36 | |
| 37 | test_1 = """ |
| 38 |
no outgoing calls
searching dependent graphs…