<p>这是另一种做事的方法。这会将所有内容移到<code>__init__</code>方法。现在<code>Consumer</code>有一个属性<code>index</code>,每当创建一个新的<code>Consumer</code>时它就会更新这个属性</p>
<pre><code>class Consumer(dict):
index={}
_count=0
def __init__(self, first=None, last=None, email=None, phone=None):
super().__init__(name_first=first, name_last=last, email=email, phone=phone)
Consumer.index[Consumer._count] = self
Consumer._count += 1
</code></pre>
<p>现在之后</p>
<pre><code>Consumer('Johnny', 'Bravo', 'jbravo@cartoonville.com', '1 353 30316541')
Consumer('Dexter', 'Scientist', 'dscientist@cartoonville.com', '1 353 33256001')
Consumer('Barney', 'Gumble', 'bgumble@cartoonville.com', '1 353 555961533')
</code></pre>
<p><code>Consumer.index</code>将等于</p>
<pre><code>{0: {'email': 'jbravo@cartoonville.com',
'name_first': 'Johnny',
'name_last': 'Bravo',
'phone': '1 353 30316541'},
1: {'email': 'dscientist@cartoonville.com',
'name_first': 'Dexter',
'name_last': 'Scientist',
'phone': '1 353 33256001'},
2: {'email': 'bgumble@cartoonville.com',
'name_first': 'Barney',
'name_last': 'Gumble',
'phone': '1 353 555961533'}}
</code></pre>