Ich frage mich, eine gute Möglichkeit zu folgen, wenn ich die Mitglieder einer zuvor definierten Klasse in Ipython neu definieren möchten. sagen: Ich habe eine Klasse Intro wie unten definiert, und später möchte ich einen Teil der Funktionsdefinition _print_api neu definieren. Irgendeine Möglichkeit, das zu tun, ohne es neu zu tippen.Gute Möglichkeit zum Bearbeiten der zuvor definierten Klasse 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)
Um den aktualisierten Code zu bekommen, müssen Sie tatsächlich die 'reload (modulename)' -Funktion verwenden - das erneute Ausführen von 'import' hat keine Auswirkung (Ich glaube der Grund dafür ist, dass ein großes Programm dasselbe importiert an mehreren möglichen Orten verursacht dies keine große Leistungseinbuße). –