リストをループして、それぞれを確認するだけです。
ただし、class def
はクラスの使用よりも上にある必要があり、小さなc
. また、認識されない場合にも注意が必要です。
あなたはカールスバーグのスペルも間違っています:/
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
ただし、次のようにします(ここで辞書を使用すると、複数のプロパティを持つ柔軟性が得られます):
beers = {}
beers["Lef"] = {"taste": "tasty"}
beers["Staropramen"] = {"taste": "tasty"}
beers["Peroni"] = {"taste": "tasty"}
beers["Coors Light"] = {"taste": "What is this?!"}
def howIsBeer (name):
taste = "I have no idea"
if name in beers:
taste = beers[name]["taste"]
print taste
howIsBeer("Lef")
味だけを保存したい場合は、次のようにします。
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")
質問で述べたように、一連のオブジェクトを保存しようとしている場合は、クラスの変数である辞書ではなく、オブジェクトの辞書が必要です。
すなわち
beers = {}
def add_beer(beer):
beers[beer.name] = beer
次に、見ているビールに関するデータを取得します。
if beer in beers:
beers[beer].taste
これは任意のオブジェクト タイプに拡張できます。まさにあなたが探しているものだと思います。
例えば
cheeses = {}
add_cheese(cheese):
cheeses[cheese.name] = cheese
どこ
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