Class reloading

Ernesto Revilla erny en sicem.biz
Mar Dic 21 12:28:19 CET 2004


Hola Chema,

Chema Cortés escribió:

>El Lunes, 20 de Diciembre de 2004 23:23, Ernesto Revilla escribió:
>  
>
>>Hola,
>>
>>Después de echar un vistazo a twisted y ver la módulo de recarga, en
>>twisted.python.rebuild, y haber leído un artículo sobre Ruby en Dr.
>>Dobbs, se me ocurrió una idea que he plasmado en:
>>http://rafb.net/paste/results/U2ItTD38.html
>>
>>Si alguien interesado me puede decir los errores y las pegas que hay en
>>ese fragmento de código, estaría muy agradecido.
>>    
>>
>
>He estado mirando por encima el código y debería funcionar para casos simples 
>(la mayoría de los casos). Pero creo daría problemas para casos más complejos 
>como clases definidas localmente dentro de otra, para clases sin diccionarios 
>(con "slots") o para paquetes distribuídos. Posiblemente hiciera falta algún 
>tipo de recursividad en la recarga", ésto es, que tuviera en cuenta que un 
>atributo de una clase pudiera ser otra clase.
>
>  
>
Sí, lo de clase dentro de otra sí es verdad. Lo pensé. Pero pensé que 
suelen ser clases muy temporales cuyas instancias normalmente mueren 
después de un corto uso. Pero me puedo equivocar. Pero, quizá, como tú 
dices, puede resolverse haciendo parte del procedimiento recursivo. 
Respecto  a los slots, tengo que comprobarlo. Suponía que las instancias 
de esas clases tiene los slots, no la clase en sí. Lo de los paquetes 
distribuidos no sé muy bien a qué te refieres.

Respecto al unicode, había pensado poco probable especificar el nombre 
de los paquetes en unicode. No sé si Python admite eso. Pero al final, 
da igual, porque eso se corrige muy fácilmente con tu solución.

Gracias.
Erny

>A parte de esto, cuando compruebas si es una cadena de caracteres:
>
>  if isinstance(module,str):
>
>fallaría si la cadena está en unicode. Sería conveniente comprobar también si 
>es 'unicode' o, mejor aún, utilizar el 'basestring' como superclase de ambos 
>tipos:
>
>
>  if isinstance(module,basestring):
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>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: 637 716189
MSN: aerd en mx3.redestb.es
ICQ: 163888521




---
avast! Antivirus: Saliente mensaje limpio.
Base de datos de Virus (VPS): 0451-2, 17/12/2004
Comprobado en: 21/12/2004 12:28:24
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