2017-11-25 13 views
0
class Drinks: 
    def __init__(self): 
    self.drink = ['Coke'] 
    self.count = 0 
    self.alcohol_level = [1] 
def main(): 
    Drinks().alcohol_level.append(89) 

レベルリストに追加するには、どうすればよいかわかりません。クラス内のリストに項目を追加する

私が試したことはある:

Drinks().alcohol_level.append(89) 

しかし、それは明らかに間違っています。どんな助けもありがとうございます。ありがとう!

+0

'** D ** ef main():' ?? – eyllanesc

+0

オブジェクトの 'level'リストに文字列を追加しようとしていますか、または文字列をクラスリスト' level'自体に追加しようとしていますか? – Miket25

+0

@ylylanesc申し訳ありませんが、小文字になっていました。修正しました。 – Gennaro

答えて

4

まず第一に、あなたのクラス定義は結構です。よくやった!

悪いニュースは、クラスのインスタンスの仕組みを誤解していると思います。

Drinks()は、タイプDrinkを返すコンストラクタです。

タイプDrinkのインスタンスを作成する場合は、do d = Drinks()を使用します。 d.alcohol_level[1]になりました。

あなたの質問にお答えするには、d.alcohol_level.append(2)とご連絡ください。あなたがb = Drinks()b.alcohol_levelを作成した場合

d.alcohol_levelは今[1, 2]

あるalcohol_levelは、インスタンス変数と各インスタンス化である、またはあなたのDrinkコンストラクタに呼び出し、自分のクラスで定義された独自のプロパティでDrinkオブジェクトを作成しますので、[1]です。

def main(): 
    d = Drinks() 
    d.alcohol_level.append(2) 
    # print(d.level) -> [1, 2] 

if __name__ == '__main__': 
    main() 

あなたのオリジナルのアイデアは、近くにあったが、あなたはラインDitto().level.append(2)後にその修正同上インスタンスへの参照を失います。

すぐ後に、それを燃やし、あなたの宿題をするPythonの同等をしました。

関連する問題