ipython에서 이전에 정의 된 클래스의 멤버를 재정의하려면 따라야 할 좋은 방법이 궁금합니다. say : 아래처럼 클래스 소개를 정의한 후 나중에 _print_api 함수 정의의 일부를 다시 정의하려고합니다. 그것을 다시 입력하지 않고 그것을 할 수있는 어떤 방법.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)
업데이트 된 코드를 얻으려면 실제로'reload (modulename)'함수를 사용해야합니다 -'import'를 다시 실행해도 아무런 효과가 없습니다 (큰 프로그램에서 같은 것을 가져 오면 여러 개의 가능한 위치에서 큰 성능 패널티가 발생하지 않음). –