From 0aefbe5340354196d12bd13ccc6a7d2ee4764f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=A3=D8=AD=D9=85=D8=AF=20=D8=A7=D9=84=D9=85=D8=AD=D9=85?= =?UTF-8?q?=D9=88=D8=AF=D9=8A=20=28Ahmed=20El-Mahmoudy=29?= Date: Thu, 19 Mar 2026 08:23:01 +0100 Subject: [PATCH] return after transfering one_animal otherwise the loop will transfer other animals of the same species * also remove method should be run on one_cage.animals list --- ch09-objects/e45b2_transfer_zoo.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ch09-objects/e45b2_transfer_zoo.py b/ch09-objects/e45b2_transfer_zoo.py index badb145..5925469 100755 --- a/ch09-objects/e45b2_transfer_zoo.py +++ b/ch09-objects/e45b2_transfer_zoo.py @@ -91,6 +91,8 @@ def number_of_legs(self): def transfer_animal(self, target_zoo, species): for one_cage in self.cages: for one_animal in one_cage.animals: + print(f'iterating on {one_animal}') if isinstance(one_animal, species): - one_cage.remove(one_animal) + one_cage.animals.remove(one_animal) target_zoo.cages[0].add_animals(one_animal) + return