Python 3/Säiliö

Wikikirjastosta


Säiliö (container) on olio, joka on kokoelma muita olioita. Säiliöstä voi mahdollisesti hakea, asettaa ja poistaa alkion []-operaattorilla, tutkia sisältääkö se oliota in-operaattorilla ja hakea koon len-operaattorilla. Nämä toteutetaan lisäämällä olioon seuraavat metodit.


Metodi Kuvaus Toteuteuttaa syntaksin
__getitem__(self, avain) Hakee annettua avainta vastaavan arvon. arvo = säiliö[avain]
__setitem__(self, avain, arvo) Asettaa arvon annetulle avaimelle. säiliö[avain] = arvo
__delitem__(self, avain) Poistaa avaimen ja arvon säiliöstä. del säiliö[avain]
__len__(self) Palauttaa säiliön alkioiden määrän. len(säiliö)
__contains__(self) Testaa sisältääkö säiliö alkoita. alkio in säiliö

Yksinkertainen esimerkki, joka ainoastaan käärii listan olioon.

class Säiliö:
    def __init__(self):
        sisältö = []
        
    def __getitem__(self, avain):
        return self.sisältö[avain]
    
    def __setitem__(self, avain, arvo):
        self.sisältö[avain] = arvo
        
    def __delitem__(self, avain):
        del self.sisältö[avain]

    def __len__(self, avain):
        return len(self.sisältö)

    def __contains__(self, avain):
        return avain in self.sisältö