擅长:python、mysql、java
<p><strong>没有自我</strong></p>
<p>创建一些对象:</p>
<pre><code>class foo(object):
x = 'original class'
c1, c2 = foo(), foo()
</code></pre>
<p>我可以更改c1实例,不会影响c2实例:</p>
<pre><code>c1.x = 'changed instance'
c2.x
>>> 'original class'
</code></pre>
<p>但是如果我更改foo类,该类的所有实例也将更改:</p>
<pre><code>foo.x = 'changed class'
c2.x
>>> 'changed class'
</code></pre>
<p>请注意Python作用域是如何工作的:</p>
<pre><code>c1.x
>>> 'changed instance'
</code></pre>
<p><strong>与自我</strong></p>
<p>更改类不会影响实例:</p>
<pre><code>class foo(object):
def __init__(self):
self.x = 'original self'
c1 = foo()
foo.x = 'changed class'
c1.x
>>> 'original self'
</code></pre>