Subo el código, está en dos ficheros separados:
Fichero 1 (decoradores):
'''
Created on 26 Feb 2014
@author: dan
'''
from time import time
#Decora la función para sacar por pantalla el id del
#hilo que se está ejecutando
def printThreadName(_self):
def _thread_i_am(function):
def tim(*args,**kwargs):
r = function(args,kwargs)
print("I am ",_self.getName()," thread")
return r
return tim
return _thread_i_am
FIchero 2 (clase que usa los decoradores)
import threading
from Decorators import printThreadName
class FileThread(threading.Thread):
def __init__(self,_filePath):
threading.Thread.__init__(self)
self.larger_line=None;
self.filePath=_filePath
#Devuelve la línea mas larga de un fichero
def __largerLine(self):
...
...
def getLargerLine(self):
return self.larger_line
@printThreadName(self)
def run(self):
self.largerLine();
Saludos y gracias de antemano.