<p>只需循环查看列表并检查每个列表。在</p>
<p>但是您需要稍微移动一下代码,因为<code>class def</code>需要高于类的使用范围,而且它还使用了一个小的<code>c</code>。你还应该注意不被识别的情况。在</p>
<p>你也把嘉士伯拼错了:/</p>
<pre><code>class Beer:
def __init__ (self, name, taste):
self.name = name
self.taste = taste
beers = []
beers.append(Beer('Carlsberg', 'tasty'))
beers.append(Beer('Guinness', 'bitter'))
beers.append(Beer('Lef', 'perfect'))
def howIsBeer (name):
taste = "I have no idea"
for beer in beers:
if beer.name == name:
taste = beer.taste
print taste
howIsBeer("Carlsberg") # tasty
</code></pre>
<p>不过,我会这样做(使用这里的字典可以灵活地拥有多个属性):</p>
^{pr2}$
<p>如果你只想储存味道,你可以这样做:</p>
<pre><code>beers = {}
beers["Lef"] = "tasty"
beers["Staropramen"] = "tasty"
beers["Peroni"] = "tasty"
beers["Coors Light"] = "What is this?!"
def howIsBeer (name):
taste = "I have no idea"
if name in beers:
taste = beers[name]
print taste
howIsBeer("Lef")
</code></pre>
<p>如果你想要存储一系列的对象-正如你在问题中提到的那样-那么你需要一个对象字典-<strong>而不是</strong>一个作为类变量的字典。在</p>
<p>即</p>
<pre><code>beers = {}
def add_beer(beer):
beers[beer.name] = beer
</code></pre>
<p>然后得到你正在看的啤酒的数据</p>
<pre><code>if beer in beers:
beers[beer].taste
</code></pre>
<p>这可以扩展到任何对象类型,我相信这正是您要寻找的</p>
<p>例如</p>
<pre><code>cheeses = {}
add_cheese(cheese):
cheeses[cheese.name] = cheese
</code></pre>
<p>在哪里</p>
<pre><code>class cheese:
def __init__(self, name, smelliness, hardness, colour, country):
self.name = name
self.smelliness = smelliness
self.hardness = hardness
self.colour = colour
self.country = country
</code></pre>