Je me demande un bon moyen de suivre si je voudrais redéfinir les membres d'une classe définie précédente dans ipython. dire: J'ai défini une intro de classe comme ci-dessous, et plus tard je veux redéfinir une partie de la définition de la fonction _print_api. Tout moyen de le faire sans le retaper.Bonne façon d'éditer la classe précédente définie dans 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)
Pour obtenir le code mis à jour, vous devez utiliser la fonction 'reload (modulename)' - l'exécution de 'import' n'aura aucun effet (je crois que la raison en est que si un gros programme importe la même chose dans plusieurs endroits possibles, il n'encourt pas une grosse pénalité de performance). –