Mi sto chiedendo un buon modo per seguire se mi piacerebbe ridefinire i membri di una precedente classe definita in ipython. dire: Ho definito una classe intro come di seguito, e più avanti voglio ridefinire parte della definizione della funzione _print_api. Qualsiasi modo per farlo senza doverlo ridigitare.Un buon modo per modificare la classe definita precedente in 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)
Per ottenere il codice aggiornato, è necessario utilizzare la funzione 'reload (modulename)' - l'esecuzione di 'import' di nuovo non avrà alcun effetto (credo che la ragione di ciò sia che se un grande programma importa la stessa cosa in più posizioni possibili non comporta una grossa penalizzazione delle prestazioni). –