1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
__doc__ = u"""
>>> class Test(object):
... def __init__(self, i):
... self.i = i
>>> b = Test(1)
>>> b.spam = Test(2)
>>> b.spam.eggs = Test(3)
>>> b.spam.eggs.spam = Test(4)
>>> b.spam.eggs.spam.eggs = Test(5)
>>> a = f(b)
>>> a.i
2
>>> b.i
1
>>> a.spam.i
1
>>> b.spam.i
2
>>> a.spam.eggs.i
Traceback (most recent call last):
AttributeError: 'Test' object has no attribute 'eggs'
>>> b.spam.eggs.i
3
>>> a.spam.spam.i
2
>>> b.spam.spam.i
1
>>> a.spam.eggs.spam.i
Traceback (most recent call last):
AttributeError: 'Test' object has no attribute 'eggs'
>>> b.spam.eggs.spam.i
4
>>> a = g(b)
>>> a.i
3
>>> b.i
1
>>> a.spam.i
4
>>> b.spam.i
2
>>> a.spam.eggs.i
1
>>> b.spam.eggs.i
3
>>> a.spam.spam.i
Traceback (most recent call last):
AttributeError: 'Test' object has no attribute 'spam'
>>> b.spam.spam.i
1
>>> a.spam.eggs.spam.i
2
>>> b.spam.eggs.spam.i
4
"""
def f(b):
a = b.spam
a.spam = b
return a
def g(b):
a = b.spam.eggs
a.spam.eggs = b
return a
|