Voeg alternerend de letters van de woorden SHOE en COLD samen en je krijgt het woord SCHOOLED.
Dezelfde procedure kan ook toegepast worden om de letters van drie woorden alternerend samen te voegen.
Het alternerend samenvoegen van de letters van een reeks woorden blijft ook niet beperkt tot woorden van dezelfde lengte. De algemene procedure neemt telkens de volgende letter van het volgende woord, waarbij na het laatste woord terug het eerste volgt. Als alle letters van een woord zijn opgebruikt, dan wordt dat woord genegeerd in de rest van de procedure. De procedure eindigt als alle letters van alle woorden zijn opgebruikt.
Definieer een klasse Woordrits waarmee de letters van een reeks woorden alternerend kunnen samengevoegd worden. De objecten van de klasse Woordrits moeten minstens over de volgende methoden beschikken:
Een initialisatiemethode waaraan ofwel een string of een lijst van strings als argument kan doorgegeven worden. Na initialisatie moet het nieuw aangemaakte object beschikken over een eigenschap woorden die verwijst naar een kopie van de gegeven lijst van strings. Als het argument dat aan de methode wordt doorgegeven een string is, dan is dit een verkorte notatie van een lijst die slechts één enkele string bevat.
Een methode __repr__ die een stringvoorstelling van het object teruggeeft. Deze stringvoorstelling bestaat uit een Python expressie die kan gebruikt worden om een nieuw object met eenzelfde waarde als het huidige object aan te maken. Deze voorstelling heeft de vorm Woordrits(li), waarbij li bestaat uit de stringvoorstelling van de lijst van strings waarnaar de eigenschap woorden van het object verwijst. Wanneer de lijst van strings echter slechts één enkel element bevat, dan bestaat li uit de voorstelling van de enige string in de lijst.
Een methode __add__ die ervoor zorgt dat het huidige object $$s$$ met de + operator kan opgeteld worden bij een ander object $$o$$ van de klasse Woordrits. Het resultaat van de expressie $$s + o$$ is een nieuw object van de klasse Woordrits waarvan de eigenschap woorden verwijst naar de lijst van strings die ontstaat uit het samenvoegen van de woordenlijsten van de objecten $$s$$ en $$o$$.
Een methode __str__ die de string teruggeeft die gevormd wordt door het alternerend samenvoegen van de letters van de strings in de lijst waar de eigenschap woorden van het huidige object naar verwijst.
Om na te gaan of een gegeven object een bepaald gegevenstype heeft, kan je natuurlijk gebruikmaken van de ingebouwde functie type(o) die het gegevenstype van het object o teruggeeft. Het is echter beter om hiervoor de ingebouwde functie isinstance(o, t) te gebruiken. Deze functie geeft een Booleaanse waarde terug die aangeeft of het object o al dan niet behoort tot het type t.
>>> type(3) == int
True
>>> isinstance(3.14, int)
False
>>> isinstance(3.14, float)
True
>>> isinstance([1, 2, 3], list)
True
>>> rits1 = Woordrits('SHOE')
>>> rits1.woorden
['SHOE']
>>> rits1
Woordrits('SHOE')
>>> print(rits1)
SHOE
>>> woorden = ['COLD']
>>> rits2 = Woordrits(woorden)
>>> rits2.woorden
['COLD']
>>> id(woorden) != id(rits2.woorden)
True
>>> rits2
Woordrits('COLD')
>>> rits3 = rits1 + rits2
>>> isinstance(rits3, Woordrits)
True
>>> rits3.woorden
['SHOE', 'COLD']
>>> rits3
Woordrits(['SHOE', 'COLD'])
>>> print(rits3)
SCHOOLED
>>> rits1
Woordrits('SHOE')
>>> rits2
Woordrits('COLD')
>>> rits4 = Woordrits('DEMO') + Woordrits('RABAT')
>>> rits4
Woordrits(['DEMO', 'RABAT'])
>>> print(rits4)
DREAMBOAT
>>> rits5 = Woordrits('SIR') + Woordrits('ILL') + Woordrits('MAY')
>>> rits5.woorden
['SIR', 'ILL', 'MAY']
>>> rits5
Woordrits(['SIR', 'ILL', 'MAY'])
>>> print(rits5)
SIMILARLY