Je suis toujours nouveau au langage de programmation Python. Pourriez-vous s'il vous plaît expliquer-moi comment faire référence à un objet à un autre. Par exemple, du code ci-dessous, j'ai besoin d'ajouter des amis à chaque objet. Cependant, les amis de l'objet sont des objets de personne.
IE. XYZ a des amis ABC, LMN où ABC, LMN est un objet personne. P>
ci-dessous est mon exemple de code p>
3 Réponses :
Semblable à la façon dont votre classe code> est un attribut code> nom code>, vous pouvez lui donner un attribut amis code> une liste de leurs amis. Cette liste pourrait stocker les attributs code> personne code> transmis en amis. class Person:
def __init__(self,name):
self.name = name
self.friends = []
def add_friend(self,friend):
self.friends.append(friend) #friend is a reference to another person object.
if __name__ == '__main__':
l_ist = [Person('XYZ'),Person('ABC'),Person('LMN')]
l_ist[0].add_friend(l_ist[1])
l_ist[0].add_friend(l_ist[2])
print(l_ist[0].friends)
print([f.name for f in l_ist[0].friends])
Oui c'était compréhensif. Juste un doute de plus. Et si nous avions un objet plus de personne et que nous voulons ajouter_friend à l'aide de leur nom et non d'indexation dans la liste, car nous ne connaîtrons pas l'index d'une personne particulière.
Vous pouvez itérer via la liste et vérifier chaque personne.name code> pour voir si elle correspond à si elle correspond, et si oui, add_friend (personne) code>. Vous pouvez même créer une classe code> personnage code> contenant tous les objets code> de la personne code> créé et peut facilement les rechercher à l'aide de fonctions qui incluent cette fonctionnalité.
Merci Oliver. Vous avez été très utile signifie beaucoup.
Si une réponse ou un commentaire aide, veuillez les éviter, et si une réponse résout votre problème, veuillez l'accepter comme étant correcte ASNWER afin que les gens puissent savoir que la question a été résolue et que le problème n'a pas besoin d'être dépensé ici!
Cela ajoutera le nom à la liste d'amis, pour ajouter une référence d'objet direct, faire self.friends.append (l_ist [1]) code>
Il convient de noter que cela ajoute des chaînes en tant qu'amais, pas de références à personne code>
@ Oliver.R a mis à jour la solution, ajoutez des détails pour ajouter l'objet lui-même et non la propriété d'objet
dans Python Tout est traité comme objet. Pour ajouter un ami dans votre code, vous pouvez simplement ajouter: p>
l_ist [0] .Add_friend (l_ist [1]) p>
Pour stocker les amis dans une liste dans l'instance de la personne elle-même, vous pouvez ajouter: p>
self.friends = [] p>
et ensuite dans la méthode Add_friends: P>
Self.friends.Append (ami) p>
Cela ne devrait pas être compliqué. Un objet peut avoir un attribut de liste appelé
amis code> qui est une liste d'objets de la même classe. Créez cette liste comme liste vide à l'initialisation (sauf si vous voulez que vos objets soient narcissiques qui sont amis avec eux-mêmes).Votre objet nécessitera un attribut pour contenir les amis, dont il peut y avoir zéro ou plus dans aucun ordre particulier (sonne comme une liste). Et lorsque vous créez une nouvelle personne, ils n'ont pas d'amis tant que vous ne les ajoutez que vous savez comment initialiser l'attribut dans le
__ init __ () code>.