이 오류는 python에서 tornado를 사용할 때 설정된 시간 제한 매개 변수가 지원되지 않기 때문에 발생합니다. 일반적으로 timeout 매개 변수의 값은 정수 또는 부동 소수점이어야 하는데, 이 경우 지원되지 않는 값이 전달되었습니다. 정수 또는 부동 소수점으로 변환할 수 없는 다른 유형 또는 값일 수 있습니다.
이 오류를 해결하려면 전달된 시간 제한 매개 변수의 값이 정수 또는 부동 소수점인지 확인해야 합니다. 이는 코드나 구성 파일을 조정하여 보장할 수 있습니다. 먼저 timeout 매개변수에 전달된 값이 유효한지 확인할 수 있습니다. 정수 또는 부동 소수점이 아닌 경우 int() 또는 float()와 같은 함수를 사용하여 유효한 값으로 변환할 수 있습니다.
timeout 매개변수를 사용하기 전에 timeout 매개변수가 유효한지 여부도 확인할 수 있습니다. 그렇지 않은 경우 기본값을 설정하거나 예외를 발생시킵니다.
예, 다음은 간단한 예입니다.
import tornado.ioloop def handle_timeout(): print("timeout occurred") def start_timeout(timeout): if not isinstance(timeout, (int,float)): raise ValueError("timeout must be a number") tornado.ioloop.IOLoop.current().call_later(timeout, handle_timeout) try: start_timeout(10) # this will work start_timeout("10") # this will raise ValueError except ValueError as e: print(str(e))
이 예에서는 전달된 시간 초과 매개변수가 정수인지 부동 소수점인지 확인합니다. 그렇지 않으면 ValueError 예외가 발생합니다.
또 다른 방법은
def start_timeout(timeout=10): if not isinstance(timeout, (int,float)): timeout = 10 tornado.ioloop.IOLoop.current().call_later(timeout, handle_timeout) start_timeout() # this will use the default timeout of 10s
여기에서는 기본값인 10초를 사용합니다. 전달된 시간 초과 매개변수가 잘못된 경우 기본값을 사용합니다.
위 내용은 토네이도가 TypeError(\'지원되지 않는 시간 초과 %r\' % 시간 초과) 오류를 보고하면 무슨 일이 벌어지고 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!