hinzufügen von Objekten in python set Sammlung und Bestimmung von Objekt-Attribut

Ich habe eine Person Klasse wie folgt aus:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return '<Person {}>'.format(self.name)

Möchte ich hinzufügen, dass einige Instanzen dieser Klasse, um einen Satz wie diesen:

tom = Person('tom', 18)
mary = Person('mary', 22)
mary2 = Person('mary2', 22)

person_set = {tom, mary, mary2}
print(person_set)
# output: {<Person tom>, <Person mary>, <Person mary2>}

Wie Sie sehen können, gibt es 2 Marys in der Gruppe. Wie kann ich es so machen, dass Person Instanzen mit dem gleichen Alter sind als die gleiche person, und nur Hinzugefügt, um das set einmal?

In anderen Worten, wie bekomme ich ein Ergebnis von {<Person tom>, <Person mary>}?

  • So, als Beispiel, Frank, age 19 wäre das gleiche wie Heather, age 19 wenn Sie nur der Vergleich von Alter?
  • ja,nur die erste, Hinzugefügt werden, in der festgelegt wird, gespeichert werden
  • dann brauchen Sie ein Wörterbuch mit dem Alter als Schlüssel, Person-Objekt als Wert.
  • ich denke, er braucht einfach ein __hash__ umgesetzt.
InformationsquelleAutor sashimi | 2012-05-11
Schreibe einen Kommentar