2010-04-06 6 views

답변

3

방법에 코드 블록을 넣고 같은처럼, 그 메소드로부터 반환 :

def do_the_thing(): 
    if not "id" in dir(): 
     print "id not set, cannot continue" 
     return 
     # exit here! 
    # otherwise continue with the rest of the script... 
    print "alright..." 
    # [ more code ] 

# Call the method 
do_the_thing() 

또한, execfile()를 사용하는 좋은 이유가없는 한,이 방법은 아마 모듈에 넣어해야합니다 여기서 다른 파이썬 스크립트를 가져 와서 호출 할 수 있습니다 :

+0

이 조건이 충족되는 경우에만 if 조건을 반전시키고 나머지 스크립트를 실행할 수도 있습니다. 방금 스크립트 실행을 멈추는 더 간단한 방법이있을 거라고 생각했습니다. 그러나 분명히 거기에 있지 않습니다 :) – fuenfundachtzig

+0

사실, 당신의 전제 조건이 메소드의 시작 부분에서 충족되는지 확인하는 것은 * 좋은 생각입니다. 따라서 모든 조건이 올 바르면 먼저 확인하고 계속하는 것이 좋은 접근 방법입니다. – Frederik

7

인터랙티브 인터프리터에서; 그것을 sys.exit에 의해 제기 SystemExit을 잡아 무시 :

가 대신 execfile를 사용
try: 
    execfile("mymodule.py") 
except SystemExit: 
    pass 
0

, 당신이 가져올 수있는 스크립트를 확인해야합니다 (이름 기능 등으로 구분 == '주요 보호) 다음과 호출 통역사의 기능.

2

저는 인터 액티브 작업을 위해 ipython에 조금 사로 잡혀 있지만 this one (가장 직접적인 경로)보다 더 강력한 솔루션 인 shell embedding에 대한 자습서를 확인하십시오.

+0

나는이 파티에 2 년이나 늦었다는 것을 알고있다. 그러나 업데이트 된 링크가 있는가? – Glycerine

+1

쉘 임베딩은 ipython 프로젝트에서 유지됩니다. 최신 버전은 http://ipython.org/ipython-doc/rel-0.13.1/interactive/reference.html#embedding-ipython입니다. – colgur

+0

남자 !!!! 나는 sooooooo를 위해 이것을 오랫동안 찾고 있었다! 고마워요! IPython import embed에서 ipython을 import 한 다음, 실행을 멈추고 대화식으로 작업 할 곳에서 embed()을 사용하십시오. 'embed() # 프로그램의 어느 곳에서나이 호출이 IPython을 시작할 것입니다. ' –