将项目添加到类中列出

时间:2017-11-25 02:28:14

标签: python python-3.x

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)

但这显然不正确。任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:4)

首先,您的班级定义很好。干得好!

坏消息,我认为,你误解了课程实例的运作方式。

Drinks()是一个返回类型Drink的构造函数。

如果您想创建Drink类型的实例,可以使用do d = Drinks()d.alcohol_level现在是[1]

要回答您的问题,请假设您致电d.alcohol_level.append(2)

d.alcohol_level现在是[1, 2]

如果您创建了b = Drinks(),则b.alcohol_level[1],因为alcohol_level是一个实例变量,并且每个实例化或调用您的Drink构造函数都会创建一个Drink对象,在您的类中定义了自己的属性。

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

if __name__ == '__main__':
  main()

你原来的想法很接近,但你在Ditto().level.append(2)行后失去了对修改过的Ditto实例的引用。

你做了相当于做功课的Python,然后马上把它烧掉。