Habemus Python 2.4

Ernesto Revilla erny en sicem.biz
Mar Nov 30 20:58:30 CET 2004


Los decoradores básicamente manipulan objetos de función, de manera que:
class A:
    @decorar
    def met1(....):
         ....


met1 =  decorar(met1)

de esa manera:

class A:
    @staticmethod
    def met1(arg1):
        ....

se equivale a:

class A:
    def met1(arg1):
        ....

    met1=staticmethod(met1)

es fácil hacer otros decoradores, simplemente hay que crear una función 
que recibe como argumento una función que la manipula:

esta función crea un wrapper que comprueba que el primer argumento a la 
función sea un entero

def checkType(f):
    def wrapper(self, *args, **kwargs):
        if type(args[0])!=int:
            raise TypeError, "Argumento 1 tiene que ser entero
        return f(*args,**kwargs)
    return wrapper

class A:
    @checkType
    def met1(self, arg):
        print arg

No lo he probado, todavía no tengo python 2.4 instalado.

Erny




Anibal Fenoglio escribió:

>El mar, 30-11-2004 a las 18:27 +0100, Pepe Aracil escribió:
>  
>
>>El Martes, 30 de Noviembre de 2004 14:17, Chema Cortés escribió:
>>    
>>
>>>Ya tenemos la versión final del python-2.4 . Ahora a sufrir con las
>>>actualizaciones :-P
>>>
>>>http://www.python.org/2.4/
>>>
>>>A ver si mañana puedo sacar el artículo con las novedades de esta versión.
>>>De momento podéis ver una relación de novedades en:
>>>http://www.python.org/2.4/highlights.html
>>>      
>>>
>>Estoy impaciente por saber entre otras cosas como funcionan los decoradores. 
>>Me he le ido la PEP, pero entre que no controlo mucho el inglés y que estoy 
>>algo espesito por culpa del resfriado, no pillo una :(
>>
>>    
>>
>
>Jaja, yo estoy igual, no puedo terminar de enterder para que son y/o
>como funcionan los "decoradores", espero que pronto encontrar algo al
>respecto en el dichoso idioma español ;)
>
>Saludos
>
>		Anibal
>
>  
>
>>Saludos.
>>_______________________________________________
>>Python-es mailing list
>>Python-es en aditel.org
>>http://listas.aditel.org/listinfo/python-es
>>
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
>  
>


-- 
Ernesto Revilla
sicem sl
Pol. Ind. Juncaril, c/ Loja Parc. 7 Local 13
18220 Albolote
http://www.sicem.biz
Tel: 958 468773 - 637 716189
MSN: aerd en mx3.redestb.es
ICQ: 163888521




---
avast! Antivirus: Saliente mensaje limpio.
Base de datos de Virus (VPS): 0443-2, 21/10/2004
Comprobado en: 30/11/2004 20:58:31
avast! tiene los derechos reservados (c) 2000-2004 ALWIL Software.
http://www.avast.com




Más información sobre la lista de distribución Python-es