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

WBOY
Lepaskan: 2024-03-01 11:20:03
ke hadapan
948 orang telah melayarinya

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))
Salin selepas log masuk

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
Salin selepas log masuk
.

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!

sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan