Programmbeschreibung (Annahme; ich kenne MySpace nicht):
Deine Seite, welche du interpretierst bieten verschiedene Informationen an:
- Freund hat einen anderen Freund hinzugefügt
- Freund hat ein Foto verlinkt
- Stimmung eines Freundes
...
Das Programm soll die Seite abfragen und die einzelnen Informationen ausgeben.
----
Folgende Klassen können aus der Beschreibung herausgelesen werden:
* Information (als Basis für die folgenden drei Klassen)
* FriendAppend
* PhotoLink
* FriendMood
Allen Informationsarten ist gemein, dass sie auf einen bestimmten Freund angewendet werden. Der Freund (Name des Freundes) sollte daher bereits als Attribut in der Klasse 'Information' vorgehalten werden.
Die Spezialisierungen haben jeweils eigene Attribute.
Vereinfachte Darstellung der Klassen:
Code: Alles auswählen
class Information(object):
def __init__(self, friend):
self.friend = friend
def __str__(self):
return '<%s>' % (self.friend,)
class FriendAppend(Information):
def __init__(self, friend, who):
Information.__init__(self, friend)
self.who = who
def __str__(self):
return '<%s> added %s as a friend' % (self.friend, self.who)
class PhotoLink(Information):
def __init__(self, friend, url):
Information.__init__(self, friend)
self.url = url
def __str__(self):
return '<%s> was linked in this photo: %s' % (self.friend, self.url)
# ...
Innerhalb Deines DataGetter-Objektes fragst du nun alle Informationen ab und erzeugst die spezialisierten Informationsobjekte. Diese packst du in eine Liste.
Mit dieser Liste kannst du dann entsprechend weiterarbeiten. Wenn du nun die Informationen zu einem bestimmten Freund suchst, iterierst du einfach durch diese Liste (oder verwendest List-Comprehension) und fragst das Attribut 'name' ab. Du kannst dann aber auch ein Dictionary erzeugen usw.
Der DataGetter ist in diesem Fall verantwortlich für die Unterscheidung der einzelnen Arten.
Ich hoffe, das hilft, dir meine Gedankengänge zu dem Thema ein bisschen darzulegen.
Grüße... Heiko