Modifier des entités : Relationrelations et Restriction:existentiellerestrictions
existentielles
Les relations des individus et les restrictions
existentielles des classes peuvent être modifiées
comme n’importe quel attribut en Python, par exemple, pour redéfinir
les relations d’un individu :
>>> ma_bactérie.gram_positif = True
S’il s’agit d’une
propriété de type ObjectProperty,
une nouvelle instance de la classe attendue peut être créée
(ici la classe Allongée) : ObjectProperty
>>> ma_bactérie.a_pour_forme = Allongée()
Lorsque la Propriété:fonctionnellepropriété est
fonctionnelle, ou qu’une restriction de la classe fait qu’elle
peut n’avoir qu’une seule valeur (restriction
de cardinalité, de type « max 1 » ou « exactly
1 »), Owlready attend une valeur unique (comme
dans les deux lignes ci-dessus). Dans le cas contraire, Owlready
recevra une Listeliste de valeurs, cependant, ce ne sont pas des listes
Python « ordinaires », comme nous
pouvons le constater en regardant la classe de ces listes et en
la comparant aux listes de Python :
>>> ma_bactérie.a_pour_regroupement.__class__
<class ’owlready2.prop.IndividualValueList’>
>>> [].__class__
<class ’list’>
Les listes d’Owlready sont des « CallbackList » ...