У меня есть три класса
class Animals:
def __init__(self):
self.dog = []
self.cat = []
class Dog:
def __init__(self,age,teeth):
self.age = age
self.teeth = teeth
class Cat:
def __init__(self,age,legs):
self.age = age
self.legs = legs
и функция:
def get_animals_from_attribute_value(animals_class, attribute, value):
from itertools import chain
animals = []
for animal in chain( -> all attributes of animals_class, e.g. dog and cat <- ):
x = getattr(animal, attribute, None)
if x == value:
animals.append(animal)
return animals
Сценарий
animals = Animals()
animals.dog.append(Dog(1, 2))
animals.dog.append(Dog(3, 1))
animals.cat.append(Cat(1, 3))
certain_animals = get_animals_from_attribute_value(animals,"age",1)
должен предоставить список со всеми экземплярами классов, где возраст атрибута == 1. Сейчас моя проблема в том, как создать итеративный список из всех атрибутов класса животных (см. 4-ю строку в скрипте функции).
Спасибо:)