首页 > 解决方案 > 在“类”PYTHON 中使用 for

问题描述

我正在尝试这个问题。我没有看到错误,也不知道为什么。这是我制作的代码:

class Aquarium: 
    def __init__(self):
        self.animales = []   # Atributo de instancia, lista vacía
        print('An Aquarium has opened!')
        
    def enters(self,animal):
        self.animal= animal
        for i in range(len(self.animales)):
            if animales[i] == animal:
                self.animales.append(animal)
                print("We already have" + self.animal)
            else:
                print(self.animal + 'is a new member of our Aquarium')

我需要创建一个代码class Aquarium并得到这个: my_aquarium = Aquarium() 水族馆已经打开了! my_aquarium.enters('Turtle') 海龟是我们水族馆的新成员! my_aquarium.enters('Turtle') 我们已经有了海龟。

标签: pythonfunctionclassinit

解决方案


有几个问题:

  • self.if animales[i] == animal:声明中不见了。这意味着该函数要么崩溃,要么使用了一个名为 animales 的全局变量,因此返回的结果与您的对象实例无关。
  • 因为您在循环中打印,所以您将多次收到您的消息(例如“我们已经拥有”+ self.animal 用于列表中的所有其他动物)
  • 当您在列表中找到动物时,您正在附加动物(这会创建重复项,但实际上您永远无法使用这种方法添加动物)。

推荐阅读