다음은 코드입니다. 내가해야 할 일은 i
을 전역으로 만들어 반복적으로 실행하면 i
의 값이 매번 0으로 리셋되는 대신 1 씩 증가하도록하는 것입니다. main
의 코드는 추적 기능이 작동하도록 '기본'에 포함 된 다른 스크립트의 코드입니다. 이것은 모두 Java에서 수행됩니다.파이썬 | 스크립트 실행 후 로컬 변수를 전역으로 만드는 방법
from __future__ import nested_scopes
import sys
import time
startTime = time.time()
timeLimit = 5000
def traceit(frame, event, arg):
if event == "line":
elapsedTime = ((time.time() - startTime)*1000)
if elapsedTime > timeLimit:
raise Exception, "The execution time has exceeded the time limit of " + str(timeLimit) + " milliseconds. Script will now terminate"
return traceit
sys.settrace(traceit)
def main______():
try:
i+=1
except NameError:
i=1
main______()
왜 적절한 클래스로 스크립과 scriptB을 설정하려고하지 않습니다? 스크립트가 객체 메소드라면, 이것은 사소한 것입니다.왜 클래스와 객체를 사용하지 않습니까? –
+1 이것은 엉망진창처럼 들린다. –
나는 사용자가 스크립트를 입력 할 수있는 pyhton 편집기를 가지고있다. setTrace 함수를 통해 스크립트가 실행 된 시간을 확인해야합니다. 나는 scriptB의 main 메소드에 스크립트를 배치하여이를 수행한다. 그렇지 않으면 작동하지 않을 것이다. 대부분 작동합니다. 유일한 문제는 스크립트가 여러 번 실행될 때 scriptA의 전역 변수가 유지되지 않는 기능을 필요로한다는 것입니다. 즉 때이 시도 : \t 내가 + = 1 나가서 설명하자면 NameError 제외 : \t I = 0 은 내가 각 실행에 증가 할 것이라고했다 (스크립트가 수정되지 않은 경우) 일이 무엇을 사용했는지를 여러 번, 실행 . – frank