Jolth

Jorge A. Toro

Cómo compilar Twitter Bootstrap 2

Problema:

Como puedo compilar Bootstrap V2.3.X?

Solución:

Antes de iniciar es necesario instalar Node.js. Leer el resto de esta entrada »

Instalar Node.js en Debian

Problema:

Cómo puedo instalar Node.js en Debian/Ubuntu? Leer el resto de esta entrada »

Autenticación, sesiones, templates y Sub-Aplicaciones en Web.py con PostgreSQL

Como puedo usar sesión, autenticación, templates y sub-app en un proyecto?

Solución:

Crear una sub-app admin.py: Leer el resto de esta entrada »

Autenticación, sesiones y templates en Web.py con PostgreSQL

Como puedo usar sesión, autenticación y templates en un proyecto?

Solución:

Crear un fichero code.py: Leer el resto de esta entrada »

Como recuperar datos de un .tar.bz2 corrupto

Creo que no hay mucho que decir. Solo que espero desarrollar en el futuro una mejor herramienta. Por ahora solo!.

Obtén bzip2recovery:

git clone https://github.com/jolth/bzip2recovery.git

Correr en el directorio dende este el fichero corrupto (por ejemplo):

./bzip2recovery.sh the_bad_backup.tar.bz2

Se debes mover bzip2recovery find_tar_headers.pl, a el directorio donde se encuentre el .tar.bz2 corrupto.

Cualquier sugerencia, bug, etc. Por favor háganmelo saber.

 

Autor: Jolth

Métodos especiales avanzados de las Clases en Python

Más métodos especiales.

__repr__(self):

Es un método especial que se invoca cuando llamamos a “repr(instancia)” y busca emular la funcionalidad de la función interna repr(), para devolver la representación textual de nuestro objeto.

Podemos definir nuestro método especial __repr__ en nuestra clase “Clientes” así:

def __repr__(self): return repr(self.data)

__len__(self):

Es un método especial que se invoca cuando llamamos a “len(instancia)” y busca emular la funcionalidad de la función interna len(). Funciona sobre cualquier objeto del que se pueda pensar razonablemente que tiene longitud. La función len() de una “cadena” es su número de caracteres; len() para un “diccionario” es su número de claves; len() de una lista o tupla es su número de elementos. Para instancias de clases; defina el método __len__ y programe usted mismo el cálculo de la longitud, y luego llame a len(instancia) para que Python invoque a su método especial __len__. P. e. para nuetra clase “Clientes” podemos crear nuestro método especial __len__ así:

def __len__(self): return len(self.data) Leer el resto de esta entrada »

Métodos especiales de las Clases en Python

Python cuenta con una serie de métodos especiales incluidos que invoca por nosotros en circunstancias particulares o cuando se usa una sintaxis específica, con el fin de emular cierto tipo de funcionalidades. Supongamos que tenemos nuestra clase que cuenta con un diccionario con datos de un cliente.

 >>> class Clientes:
 ... def __init__(self, dict=None):
 ... self.data = {}
 ... if dict is not None:
 ... self.update(dict)
 ... def update(self, dict=None):
 ... self.data.update(dict)
 ... def clear(self): self.data.clear()
 ... def keys(self): return self.data.keys()
 ... def items(self): return self.data.items()
 ... def values(self): return self.data.values()
 ... def getvalue(self, key): return self.data[key]
 ...
 >>>
 >>> c = Clientes({'nombre':'Jorge', 'apellidos':'Toro', 'nit':'100244235', 'cargo':'aseador', 'telefono':None})
 >>> c
 <__main__.Clietes instance at 0xb743d16c>
 >>> c.keys()
 ['apellidos', 'nombre', 'telefono', 'nit', 'cargo']
 >>> c.values()
 ['Toro', 'Jorge', None, '100244235', 'aseador']
 >>> c.items()
 [('apellidos', 'Toro'), ('nombre', 'Jorge'), ('telefono', None), ('nit', '100244235'), ('cargo', 'aseador')]
 >>> # Obtener el cargo del cliente
 ... c.getvalue('cargo')
 'aseador'
 >>>

Los métodos especiales nos permiten realizar ciertas acciones o comportamientos diferentes a solo llamar métodos. En lugar de usar un método como “getvalue()”, puede hacerse con una sintaxis que no incluya una invocación explícita a métodos. Aquí es donde entran los “métodos especiales”, ya que nos proporcionan este tipo de sintaxis especial, convirtiendo la “sintaxis que no llama a métodos” en “llamadas a métodos”. Leer el resto de esta entrada »

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.