반응형
이것은 간단한 프로그램의 개요입니다.
# some pre-defined constants
A = 1
B = 2
# function that does something critical
def foo(num1, num2):
# do something
# main program.... do something to A and B
for i in range(20):
# do something to A and B
# and update A and B during each iteration
import timeit
t = timeit.Timer(stmt="foo(num1,num2)")
print t.timeit(5)
"전역 이름 foo가 정의되지 않았습니다"라는 메시지가 계속 표시됩니다 ..... 누구든지 이것에 대해 나를 도울 수 있습니까? 감사!
해결 방법
코드 조각은 자체 포함되어야하며 외부 참조를 만들 수 없습니다. statement-string 또는 setup-string에서 값을 정의해야합니다.
import timeit
setup = """
A = 1
B = 2
def foo(num1, num2):
pass
def mainprog():
global A,B
for i in range(20):
# do something to A and B
foo(A, B)
"""
t = timeit.Timer(stmt="mainprog()" setup=setup)
print(t.timeit(5))
더 좋은 방법은 전역 값을 사용하지 않도록 코드를 다시 작성하는 것입니다.
참조 페이지 https://stackoverflow.com/questions/5086430
반응형
'파이썬' 카테고리의 다른 글
파이썬 How do you directly overlay a scatter plot on top of a jpg image in matplotlib / Python? (0) | 2020.10.11 |
---|---|
파이썬에서 sqlite 문제의 AUTO_INCREMENT (0) | 2020.10.11 |
파이썬 Python 버전을 업데이트하는 방법은 무엇입니까? (0) | 2020.10.11 |
파이썬 Keras 멀티 클래스 모델에서 혼동 행렬 얻기 (0) | 2020.10.11 |
파이썬 Pytesseract : "TesseractNotFound 오류 : tesseract가 설치되지 않았거나 경로에 없습니다.", 어떻게 해결합니까? (0) | 2020.10.11 |
댓글