class Person():
    def __init__(self, name, age=None, friends=None):
        self.name = name
        self.age = age
        if friends is None:
            friends = []
        self.friends = PersonFriendList(friends)
 
 
class PersonFriendList(list):
    def __init__(self, *args):
        super(PersonFriendList, self).__init__(*args)
        self.DebugPrint('constructed with {}'.format(str(*args)))
 
    def DebugPrint(self, string):
        print('{}(): {}'.format(self.__class__.__name__, string))
 
    def append(self, *args):
        super(PersonFriendList, self).append(*args)
        self.DebugPrint('appending {}'.format(str(*args)))
 
me = Person('Mr. Me')
you = Person('Ms. You')
 
me.age = 42
me.friends.append(you)
 
				Y2xhc3MgUGVyc29uKCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgYWdlPU5vbmUsIGZyaWVuZHM9Tm9uZSk6CiAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgIHNlbGYuYWdlID0gYWdlCiAgICAgICAgaWYgZnJpZW5kcyBpcyBOb25lOgogICAgICAgICAgICBmcmllbmRzID0gW10KICAgICAgICBzZWxmLmZyaWVuZHMgPSBQZXJzb25GcmllbmRMaXN0KGZyaWVuZHMpCgoKY2xhc3MgUGVyc29uRnJpZW5kTGlzdChsaXN0KToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CiAgICAgICAgc3VwZXIoUGVyc29uRnJpZW5kTGlzdCwgc2VsZikuX19pbml0X18oKmFyZ3MpCiAgICAgICAgc2VsZi5EZWJ1Z1ByaW50KCdjb25zdHJ1Y3RlZCB3aXRoIHt9Jy5mb3JtYXQoc3RyKCphcmdzKSkpCgogICAgZGVmIERlYnVnUHJpbnQoc2VsZiwgc3RyaW5nKToKICAgICAgICBwcmludCgne30oKToge30nLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc3RyaW5nKSkKCiAgICBkZWYgYXBwZW5kKHNlbGYsICphcmdzKToKICAgICAgICBzdXBlcihQZXJzb25GcmllbmRMaXN0LCBzZWxmKS5hcHBlbmQoKmFyZ3MpCiAgICAgICAgc2VsZi5EZWJ1Z1ByaW50KCdhcHBlbmRpbmcge30nLmZvcm1hdChzdHIoKmFyZ3MpKSkKCm1lID0gUGVyc29uKCdNci4gTWUnKQp5b3UgPSBQZXJzb24oJ01zLiBZb3UnKQoKbWUuYWdlID0gNDIKbWUuZnJpZW5kcy5hcHBlbmQoeW91KQo=