Bienvenidos sean a este post, hoy hablaremos sobre este funcion del modulo de colecciones.
Esta clase actua como una clase contenedora alrededor de los objetos de una cadena (string), esto nos puede ser muy util para cuando necesitamos utilizar funciones nuevas o modificadas con nuestros nombres de tipo string, para esto se toma una instancia de una string como argumento y simula otra string que se mantiene en un string normal y este es accesible por los atributos de datos de esta clase, vamos a ver un ejemplo:
>>> from collections import UserString
>>> s = "tinchicus.com"
>>> us = UserString(s)
>>>
Como siempre importamos de las colecciones al tipo de dato, luego creamos una string para trabajar con ella, nuestro siguiente paso sera crear el objeto de tipo UserList que llamaremos us y le pasaremos la string que generamos anteriormente, veamos como asigno la informacion:
>>> print(us.data)
tinchicus.com
>>>
Como pueden observar esto se creo correctamente y ahora tenemos una string con la misma informacion que la original.
Vamos a hacer un par de modificaciones para poder ver como trabaja esta clase, para ello haremos que las funciones append y remove trabajen de forma distinta, para ello primero crearemos la siguiente clase:
>>> class MiCadena(UserString):
... def append(self, s):
... self.data += s + "#"
... def remove(self, s):
... self.data = self.data.replace(s, "%")
...
>>>
En esta clase recibiremos un valor de tipo UserList, luego a traves de la defincion de dos funciones para cuando usemos un append o remove no hara la ejecucion correspondiente sino que hara otras acciones, en el caso de append no solo adicionara el caracter informado sino el numeral (#) y en el caso de remove no quitara nada sino que reemplazara el caracter que informemos por uno de porcetanje (%), nuestro siguiente paso sera crear una nueva string:
>>> s = MiCadena("tinchicus.com")
Con nuestro nueva string creada a traves de la nueva clase podemos comenzar a procesarlo como antes, veamos primero como esta cargada la informacion:
>>> print(s.data)
tinchicus.com
>>>
Ahora probemos de agregar un nuevo texto a nuestra string:
>>> s.append(" prueba")
>>> print(s.data)
tinchicus.com prueba#
>>>
En el ejemplo podemos ver como no solo agrego la cadena que le pasamos sino tambien el numeral que identifica que fue hecho por nuestra funcion, probemos ahora a remove:
>>> s.remove("prueba")
>>> print(s.data)
tinchicus.com %#
>>>
Como pueden ver ahora no solamente se borro sino que tambien lo reemplazo por el caracter de porcentaje, esto no afectaria a la string original sino simplemente al UserString que generamos alrededor del mismo.
En resumen, hoy hemos visto UserString, esta es una subclase de str, la ventaja principal que nos provee es poder crear una string con nuestras propias reglas o personalizada sin afectar a la informacion original, esto es util dependiendo de la situacion que tengamos, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.00
