| f | import weakref | f | import weakref |
| | | |
| class Borg: | | class Borg: |
| n | _refs = [] | n | _instances = [] |
| | | |
| def __init__(self, value=0): | | def __init__(self, value=0): |
| self.value = value | | self.value = value |
| n | Borg._refs.append(weakref.ref(self)) | n | Borg._instances.append(weakref.ref(self)) |
| | | |
| def __str__(self): | | def __str__(self): |
| return str(self.value) | | return str(self.value) |
| | | |
| def __repr__(self): | | def __repr__(self): |
| n | return str(self) | n | return str(self.value) |
| | | |
| def __iter__(self): | | def __iter__(self): |
| n | for r in Borg._refs: | n | for ref in Borg._instances: |
| obj = r() | | obj = ref() |
| if obj is not None: | | if obj is not None: |
| yield obj.value | | yield obj.value |
| | | |
| n | def __iadd__(self, num): | n | def __iadd__(self, other): |
| for r in Borg._refs: | | for ref in Borg._instances: |
| obj = r() | | obj = ref() |
| if obj is not None: | | if obj is not None: |
| n | obj.value += num | n | obj.value += other |
| return self | | return self |
| | | |
| n | def __isub__(self, num): | n | def __isub__(self, other): |
| for r in Borg._refs: | | for ref in Borg._instances: |
| obj = r() | | obj = ref() |
| if obj is not None: | | if obj is not None: |
| t | obj.value -= num | t | obj.value -= other |
| return self | | return self |