python - 在“类”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')
我们已经有了海龟。
解决方案
有几个问题:
- 你
self.
在if animales[i] == animal:
声明中不见了。这意味着该函数要么崩溃,要么使用了一个名为 animales 的全局变量,因此返回的结果与您的对象实例无关。 - 因为您在循环中打印,所以您将多次收到您的消息(例如“我们已经拥有”+ self.animal 用于列表中的所有其他动物)
- 当您在列表中找到动物时,您正在附加动物(这会创建重复项,但实际上您永远无法使用这种方法添加动物)。
推荐阅读
- c# - 如何解决不工作的级联下拉
- mysql - 使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?
- node.js - Prisma 2 过滤父对象和嵌套对象
- typescript - 如何在具有枚举值的函数参数中使用 typescript keyof?
- docker - docker-compose nginx proxy_pass 到上游容器的行为不符合预期
- javascript - POSTMAN - 如何在单个请求中为嵌套对象设置环境值?
- python-3.x - 如何在python中使用flask SqlAlchemy将日期时间类型的列数据转换为“MM/YYYY”格式
- python - Windows 安全提示 python
- html - 在 html 中的输入字段的值中同时包含日期和字符串
- circleci - 使用`electron-forge make --platform=win32`构建电子应用程序时如何重用平台参数?