Une personne peut posséder plusieurs voitures mais une voiture appartient à une seule personne. Dans clipsPyClips: Créer des références multislot/multifield à d'autres instances de clips
(defclass PERSON
(is-a USER)
(role concrete)
(pattern-match reactive)
(multislot cars) ; each list element should be a reference to an instance of type CAR
)
(defclass CAR
(is-a USER)
(role concrete)
(pattern-match reactive)
(slot owner) ; should be a reference to an instance of type PERSON
)
J'utilise pyclips. Maintenant, je voudrais lier une instance existante de CAR à une instance PERSON existante. Mon essai:
clips_person_instance = clips.FindInstance(name_of_existing_person)
clips_car_instance = clips.FindInstance(name_of_existing_car)
list_of_cars = clips_person_instance.Slots["cars"]
list_of_cars.append(clips_car_instance)
clips_person_instance.Slots["cars"] = list_of_cars
Cela me donne
TypeError: list element of type
<class 'clips._clips_wrap.Instance'>
cannot be converted
Pour autant que je peux le voir est un problème pyclips faire ajouter une liste d'instances à une fente. S'il est juste une seule instance (pas de liste), cela fonctionne très bien:
clips_car_instance.Slots["owner"] = clips_person_instance
Ma question: Comment puis-je "lien" pour les instances de classe dans les clips (py)? En OO-mots: Comment créer une association entre deux objets? Comment créer une relation "1 à plusieurs" dans des clips (py)?