파이썬은 atexit 모듈이 인터프리터 닫기 전에 실행할 함수를 등록했습니다. This question 왜 atexit가 호출되지 않는 지 잘 알고 있습니다.ipxthon 대신 atexit
%run <name>
과 함께 실행 된 항목을 종료하기 전에 ipython
에 대한 대안이 있는지 궁금합니다. 이상 적으로는 인터프리터에 따라 모듈에 레지스터를 사용하는 데코레이터를 만들고 싶습니다.
파이썬은 atexit 모듈이 인터프리터 닫기 전에 실행할 함수를 등록했습니다. This question 왜 atexit가 호출되지 않는 지 잘 알고 있습니다.ipxthon 대신 atexit
%run <name>
과 함께 실행 된 항목을 종료하기 전에 ipython
에 대한 대안이 있는지 궁금합니다. 이상 적으로는 인터프리터에 따라 모듈에 레지스터를 사용하는 데코레이터를 만들고 싶습니다.
좋은 의견을 보내 주신 Thomas K에게 감사드립니다. 그가 대답을 쓰는 경우에 나는 그를 받아 들일 것이다. http://ipython.readthedocs.io/ (특히 %의 run``후 발사 일이 없습니다
# exit_register runs at the end of ipython %run or the end of the python interpreter
try:
def exit_register(fun, *args, **kwargs):
""" Decorator that registers at post_execute. After its execution it
unregisters itself for subsequent runs. """
def callback():
fun()
ip.events.unregister('post_execute', callback)
ip.events.register('post_execute', callback)
ip = get_ipython()
except NameError:
from atexit import register as exit_register
@exit_register
def callback():
print('I\'m done!')
print('Running')
위대한 작품입니다. 추가 할 한 가지. 'atexit.register'는 인수와 키워드 인수를 취할 수 있습니다. 'exit exit_register (fun, * args, ** kwargs)'와'fun (* args, ** kwargs) '를 통해 이것을 허용하기 위해'exit_register'를 변경하는 것을 고려하십시오. – JesterEE
@JesterEE. 그것을 언급 해 주셔서 고마워요. 결정된 –
,하지만 당신은 하나 [사용자 지정 마술을 정의] 수있다 : 그렇지 않으면이 코드 조각은 다른 사람 도움이 있습니다// 안정/config/custommagics.html)'% run'과 몇 가지 조치를 취하거나 [post_run_cell 콜백 제공] (http://ipython.readthedocs.io/en/stable/config/callbacks.html) 각 입력이 실행 된 후 –