typestar

Métodos dunder de contenedor en Python

Enseñar a una clase a comportarse como un contenedor integrado.

class ListaDeReproduccion:
    def __init__(self, *songs):
        self.songs = list(songs)

    def __len__(self):
        return len(self.songs)

    def __getitem__(self, i):
        return self.songs[i]

    def __contains__(self, titulo):
        return titulo in self.songs


mezcla = ListaDeReproduccion("Africa", "Take On Me", "Hey Ya")
conteo = len(mezcla)
apertura = mezcla[0]
la_tiene = "Hey Ya" in mezcla

Cómo funciona

  1. __len__ impulsa len() sobre el objeto.
  2. __getitem__ habilita la indexación con [].
  3. __contains__ responde al operador in.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
368
Tokens
97
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 55 segundos.

Escribe este fragmento

Paso 3 de 5 en Protocolos y gestores de contexto; paso 17 de 53 en Python pythónico.

← Anterior Siguiente →