Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre este funcion del modulo de colecciones.

Anuncios

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)
>>>
Anuncios

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
>>>
Anuncios

Como pueden observar esto se creo correctamente y ahora tenemos una string con la misma informacion que la original.

Anuncios

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, "%")
... 
>>>
Anuncios

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")
Anuncios

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
>>>
Anuncios

Ahora probemos de agregar un nuevo texto a nuestra string:

>>> s.append(" prueba")
>>> print(s.data)
tinchicus.com prueba#
>>>
Anuncios

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 %#
>>>
Anuncios

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.

Anuncios

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.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.00