> 백엔드 개발 > 파이썬 튜토리얼 > TypeError(\'지원되지 않는 기한 %r\' % 기한) 프롬프트에 대한 솔루션

TypeError(\'지원되지 않는 기한 %r\' % 기한) 프롬프트에 대한 솔루션

王林
풀어 주다: 2024-03-01 13:20:45
앞으로
894명이 탐색했습니다.

TypeError(\지원되지 않는 기한 %r\ % 기한) 프롬프트에 대한 솔루션

오류가 발생하는 이유

이 오류는 Tornado의 ioLoop.add_timeout() 또는 IOLoop.add_callback() 메서드를 사용할 때 전달된 마감일 매개 변수의 값이 정수 또는 부동 소수점 숫자가 아니기 때문입니다. 숫자 유형 매개변수를 사용해야 합니다.

해결 방법

해결 방법은 코드에서 IOLoop.add_timeout() 또는 IOLoop.add_callback() 메서드에 전달된 마감 매개 변수의 값을 확인하여 정수 또는 부동 소수점 숫자인지 확인하는 것입니다.

예를 들어 string 또는 기타 숫자가 아닌 값을 전달하는 경우 이를 정수 또는 부동 소수점으로 변환하세요.

다른 이유로 인해 오류가 발생한 경우 더 자세한 답변을 드릴 수 있도록 더 많은 컨텍스트와 코드 조각을 제공해 주세요.

사용 예

예, 예는 다음과 같습니다.

import tornado.ioloop

def my_callback():
print("callback called")

# This will work
deadline = tornado.ioloop.IOLoop.current().time() + 5.0
tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)

# This will raise "TypeError("Unsupported deadline %r" % deadline)"
deadline = "5.0"
tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)
로그인 후 복사

첫 번째 예에서는 부동소수점을 마감일로 전달하고 있는데 이는 맞습니다. 두 번째 예에서는 문자열을 전달하므로 오류가 발생합니다. 마감일을 float 유형으로 변환해야 합니다.

아아아아

이렇게 하면 오류를 피할 수 있습니다

미래의 특정 시점에 콜백 함수를 실행하려면 타임스탬프를 첫 번째 매개변수로 받아들이고 해당 타임스탬프가 도착한 후에 실행되는 IOLoop.add_timeout() 메서드를 사용할 수 있습니다. 콜백 함수. 예를 들어 5초 후에 콜백 함수를 실행하려면 다음 코드를 사용하면 됩니다.

deadline = float("5.0")
tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)
로그인 후 복사

다음 이벤트 루프에서 콜백 함수를 실행하려면 IOLoop.add_callback() 메서드를 사용하면 됩니다.

아아아아

또 다른 방법은 IOLoop.call_later() 메서드를 사용하는 것입니다. 이 메서드는 몇 초를 첫 번째 매개 변수로 받아들이고 해당 시간이 경과한 후 콜백 함수를 실행합니다.

예를 들어 5초 후에 콜백 함수를 실행하려면 다음 코드를 사용하면 됩니다.

import tornado.ioloop

def my_callback():
print("callback called")

deadline = tornado.ioloop.IOLoop.current().time() + 5.0
tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)

# Start the IOLoop
tornado.ioloop.IOLoop.current().start()
로그인 후 복사

고급 시나리오에서 이러한 방법을 사용하려는 경우 Tornado 문서에서 자세한 정보를 찾을 수 있습니다.

위 내용은 TypeError(\'지원되지 않는 기한 %r\' % 기한) 프롬프트에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lsjlt.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿