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