Me pregunto si es una buena forma de seguir si quisiera redefinir los miembros de una clase definida previamente en ipython. decir: He definido una introducción de clase como a continuación, y luego quiero redefinir parte de la definición de la función _print_api. Cualquier forma de hacerlo sin volver a escribirlo.Una buena manera de editar la clase definida anteriormente en ipython
class intro(object):
def _print_api(self,obj):
def _print(key):
if key.startswith('_'):
return ''
value = getattr(obj,key)
if not hasattr(value,im_func):
doc = type(valuee).__name__
else:
if value.__doc__ is None:
doc = 'no docstring'
else:
doc = value.__doc__
return ' %s :%s' %(key,doc)
res = [_print(element) for element in dir(obj)]
return '\n'.join([element for element in res if element != ''])
def __get__(self,instance,klass):
if instance is not None:
return self._print(instance)
else:
return self._print_api(klass)
Para obtener el código actualizado, en realidad tiene que usar la función 'reload (modulename)' - ejecutar 'import' nuevamente no tendrá ningún efecto (creo que la razón es que si un programa grande importa lo mismo en múltiples ubicaciones posibles, no incurre en una gran penalización de rendimiento). –