Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah yang berlaku apabila puting beliung melaporkan TypeError(\'Tamat masa tidak disokong %r\' % tamat masa)?

Apakah yang berlaku apabila puting beliung melaporkan TypeError(\'Tamat masa tidak disokong %r\' % tamat masa)?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2024-03-01 11:20:03997semak imbas

Apakah yang berlaku apabila puting beliung melaporkan TypeError(\Tamat masa tidak disokong %r\ % tamat masa)?

Sebab ralat

Ralat ini adalah kerana apabila menggunakan puting beliung dalam python, parameter tamat masa yang ditetapkan tidak disokong. Biasanya, nilai parameter tamat masa hendaklah integer atau apungan, tetapi dalam kes ini nilai yang tidak disokong telah dihantar masuk. Mungkin jenis lain atau nilai yang tidak boleh ditukar kepada integer atau apungan.

Cara menyelesaikan

Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa nilai parameter tamat masa yang dihantar ialah integer atau apungan. Ini boleh dipastikan dengan melaraskan kod atau fail konfigurasi. Anda boleh menyemak dahulu sama ada nilai yang diluluskan dalam parameter tamat masa adalah sah Jika ia bukan integer atau float, anda boleh menggunakan fungsi seperti int() atau float() untuk menukarnya kepada nilai undang-undang.

Sebelum anda menggunakan parameter tamat masa, anda juga boleh menyemak sama ada parameter tamat masa itu sah Jika tidak, tetapkan nilai lalai atau buang pengecualian.

Contoh Penggunaan

Ya, berikut adalah contoh mudah:

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))

Dalam contoh ini, kami menyemak sama ada parameter tamat masa yang dihantar ialah integer atau apungan Jika tidak, pengecualian ValueError akan dilemparkan

Cara lain ialah menggunakan nilai lalai, seperti

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
.

Di sini, kami menggunakan nilai lalai 10s Jika parameter tamat masa yang dihantar adalah menyalahi undang-undang, kami menggunakan nilai lalai.

Atas ialah kandungan terperinci Apakah yang berlaku apabila puting beliung melaporkan TypeError(\'Tamat masa tidak disokong %r\' % tamat masa)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam