그래서 오류가 발생합니다.
[Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded
내가 실행중인 코드는
import threading
def hello_world(a):
threading.Timer(2.0, hello_world(a)).start() # called every minute
print(a)
print("Hello, World!")
hello_world('a')
hello_world
함수에 인수가 없으면 오류가 발생하지 않는다는 것을 알았습니다 . 하지만 함수에 매개 변수를 전달해야하는 즉시 오류가 발생합니다. 누군가가 그 이유와 해결 방법을 설명 할 수 있습니까?
threading.Timer()
생성자는 기대 함수 와 인수가 함수에 전달하는 개별 파라미터 들로서 . 이를 호출하는 적절한 방법은 다음과 같습니다.
threading.Timer(2.0, hello_world, (a,)).start()
hello_world
호출하지 않고 참조하는 것을 볼 수 있으며 , 1-tuple에 별도로 전달하려는 매개 변수를 나열합니다 (a,)
.
현재 수행 중인 방식 hello_world(a)
은 표현식이 끝나기 전에 즉시 평가 하고, 반환 값이 무엇인지 알아 내려고 hello_world(a)
합니다. 타이머를 시작한 다음 타이머가 작동 할 때마다 표현식을 평가하는 것과는 대조적입니다. 꺼집니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다