How to modify a variable inside of function
Code example
class z():
    def __init__(self):
        self.z = ['foo']
        print 'before', self.z
    def zoo(self, doo):
        doo[0] = 'ya'
class b():
    def __init__(self):
        self.z = 'foo'
        print 'before', self.z
    def zoo(self, doo):
        doo = 'ya'
A = z()
A.zoo(A.z)
print 'after', A.z
print
B = b()
B.zoo(B.z)
print 'after', B.z
Output [dandelion@bart ~]$ python z.py before ['foo'] after ['ya'] before foo after foo [dandelion@bart ~]$
Explanation
It’s simple. In Python ‘string’ is immutable object, while [list] is mutable one.