elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Duda con decorador y parámetro self en Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con decorador y parámetro self en Python  (Leído 2,191 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Duda con decorador y parámetro self en Python
« en: 27 Febrero 2014, 01:21 am »

Hola a todos.

Estoy intentando decorar el método de una clase. El decorador en cuestión tiene un parámetro.
Dentro de la clase intento decorar la función A() con este decorador (pasándole como parámetro 'self'), pero al llamar al método A() me da error:

" NameError: name 'self' is not defined "

¿Qué hago mal?

Gracias


En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: Duda con decorador y parámetro self en Python
« Respuesta #1 en: 28 Febrero 2014, 23:48 pm »

¿Puedes poner el código?

Saludos!


En línea

EzianGES

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Duda con decorador y parámetro self en Python
« Respuesta #2 en: 4 Marzo 2014, 18:55 pm »

¿Puedes poner el código?

Saludos!

Quizás porque estás haciendo referencia a un objeto que no está instanciado... i think...

Si subís el código sería de gran de ayuda.
En línea

SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: Duda con decorador y parámetro self en Python
« Respuesta #3 en: 9 Marzo 2014, 15:40 pm »

Subo el código, está en dos ficheros separados:

Fichero 1 (decoradores):
Código:
'''
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)
Código:
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.
« Última modificación: 10 Marzo 2014, 00:31 am por SARGE553413 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre parametro post
PHP
wizache 3 1,919 Último mensaje 6 Agosto 2007, 10:14 am
por Sanjuu
problemas metodo con parametro (solucionado) era sin parametro XD
Java
rub'n 6 6,920 Último mensaje 25 Noviembre 2010, 16:45 pm
por Afsoon
Pequeña duda de este parámetro del for.
Programación C/C++
anonimo12121 7 2,959 Último mensaje 31 Marzo 2011, 10:18 am
por anonimo12121
duda del parametro -d en iptables
Seguridad
sancakoky 2 2,589 Último mensaje 23 Marzo 2012, 12:12 pm
por adastra
Duda con matrices y paso por parametro « 1 2 3 »
Programación C/C++
patilanz 21 7,958 Último mensaje 24 Abril 2014, 17:08 pm
por vangodp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines