структуры данных на Python

afandi

Новичок
Пользователь
Мар 6, 2024
2
0
1
Коллеги, всем доброго дня!

Мне необходимо использовать структуру состоящую из данных разного типа, что то вроде:

Питомец
{
вид;
имя;
возраст;
используемый_корм[];
цвет_окраса[];
}

И потом работать с ней как то так:
питомец[n].вид = "cat"
питомец[n]имя = "Cat"
питомец[n].цвет_окраса = "black"
питомец[n].цвет_окраса[y] = "grey"

Не нашел как можно в Python создавать сложные структуры данных, поэтому сделал так
Python:
class Pet():
    specie = ""
    name = ""
    age = ""
    color = []
    food = []
    
class Zoo():
    a = []
    for i in range(10):
        a.append(Pet())
    a[1].specie = "cat"
    a[2].specie = "dog"
    a[3].specie = "fish"
    a[3].food = ["corn", "insects"]
    a[2].food.append("bone")
    a[2].food.append("meat")

Такая запись вроде работает, но мне кажется я не правильно использую класс и не правильно его описываю.
Также при таком использовании структуры, при написании кода в PyCharm, не выводятся подсказки по переменным класса Pet() в классе Zoo()

Подскажите пожалуйста, как правильно в Python, описывать и использовать, подобные структуры данных?

Заранее спасибо!
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Python:
class Pet:
    def __init__(self):
        self.specie = ""
        self.name = ""
        self.age = ""
        self.color = []
        self.food = []

    def __str__(self):
        return f"<Pet ({self.name})>"
  
class Zoo:
    def __init__(self):
        self.pets = {}

    def __getitem__(self, key):
        if not key in self.pets:
            self.pets[key] = Pet()
        return self.pets[key]

zoo = Zoo()
zoo[0].name = 'Simba'
print(zoo[0])
 
  • Мне нравится
Реакции: afandi

afandi

Новичок
Пользователь
Мар 6, 2024
2
0
1
Данил, доброго дня!
Спасибо вам огромное за помощь!
К сожалению, пока не совсем понимаю как работает объект Zoo, но постараюсь разобраться.
 

Форум IT Специалистов