in python, self does not mean instance?
<p>I just make a foo class to explain what I mean:</p>

<pre><code>class Foo:
    def __init__(self, fakevalue):
        self.fv = fakevalue

    @staticmethod
    def make_a_foo():
        return Foo(2)

    def try_change_foo_value(self):
        self = Foo.make_a_foo()
        print "in change function, self.fv:", self.fv

if(__name__ =='__main__'):
    foo_instance = Foo(1)
    print "foo_instance.fv:", foo_instance.fv
    foo_instance.try_change_foo_value()
    print "foo_instance.fv:", foo_instance.fv
</code></pre>

<p>I expect:</p>

<pre><code>foo_instance.fv: 1
in change function, self.fv: 2
foo_instance.fv: 2
</code></pre>

<p>But the result is:</p>

<pre><code>foo_instance.fv: 1
in change function, self.fv: 2
foo_instance.fv: 1
</code></pre>

<p>We can see the self value has already changed, but the instance value does not.
Why? And how to solve this problem?</p>
