Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk menyelesaikan ralat parameter panggilan tidak sah Python?

Bagaimana untuk menyelesaikan ralat parameter panggilan tidak sah Python?

Jun 24, 2023 pm 10:44 PM
Penyelesaian ralat Parameter adalah haram panggilan python

Python ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pengkomputeran saintifik, analisis data, automasi, pembangunan web dan bidang lain. Dalam pembangunan aplikasi Python, ralat parameter panggilan haram ialah ralat pengaturcaraan biasa, yang mungkin menyebabkan program ranap atau hasil yang dijalankan tidak konsisten dengan jangkaan. Artikel ini akan memperkenalkan punca parameter panggilan haram dalam Python dan cara menyelesaikan ralat ini.

1. Cara memanggil parameter dalam Python

Dalam Python, terdapat dua cara untuk memanggil fungsi dan kaedah:

  1. Kaedah panggilan parameter kedudukan

Parameter kedudukan merujuk kepada parameter yang dihantar mengikut susunannya ditakrifkan. Sebagai contoh, definisi fungsi berikut mempunyai dua parameter kedudukan a dan b:

def add(a, b):
    return a + b
Salin selepas log masuk

Apabila memanggil fungsi, anda boleh menghantar parameter dalam susunan parameter kedudukan:

result = add(1, 2)
Salin selepas log masuk

Di sini 1 dan 2 diberikan kepada parameter a dan b masing-masing, dan fungsi mengembalikan 3.

  1. Kaedah panggilan parameter kata kunci

Parameter kata kunci ialah parameter yang diluluskan mengikut nama parameter. Contohnya, takrifan fungsi berikut mempunyai dua parameter kata kunci x dan y:

def sub(x, y):
    return x - y
Salin selepas log masuk

Apabila memanggil fungsi, anda boleh menghantar parameter dengan menyatakan nama parameter:

result = sub(x=3, y=1)
Salin selepas log masuk

Di sini 3 dan 1 masing-masing diberikan kepada parameter x dan y, dan fungsi kembali 2.

2. Punca ralat parameter panggilan Python yang tidak sah

Ralat parameter panggilan Python yang tidak sah biasanya mempunyai sebab berikut:

  1. Bilangan parameter tidak sepadan

Apabila memanggil fungsi atau kaedah, bilangan parameter yang diluluskan adalah tidak sepadan dengan definisi Apabila bilangan parameter tidak sepadan, ralat parameter haram akan berlaku. Sebagai contoh, definisi fungsi berikut mempunyai dua parameter kedudukan a dan b, tetapi hanya satu parameter yang diluluskan apabila memanggil:

def add(a, b):
    return a + b

result = add(1)
Salin selepas log masuk

Hanya satu parameter 1 diluluskan di sini, tetapi definisi fungsi memerlukan dua parameter kedudukan, jadi parameter itu akan menyalahi undang-undang .

  1. Mencampurkan parameter kedudukan dan parameter kata kunci

Apabila menggunakan parameter kedudukan dan parameter kata kunci secara bercampur-campur, ini boleh menyebabkan ketidakpadanan parameter. Sebagai contoh, definisi fungsi berikut mempunyai dua parameter kedudukan a dan b dan parameter kata kunci c:

def func(a, b, c=0):
    return a + b + c
Salin selepas log masuk

Apabila memanggil fungsi, anda boleh menghantar nilai kepada parameter kata kunci c dengan menyatakan nama parameter:

result = func(1, 2, c=3)
Salin selepas log masuk

Anda juga boleh gunakan parameter kedudukan Melepasi nilai parameter:

result = func(1, 2, 3)
Salin selepas log masuk

Walau bagaimanapun, jika parameter kedudukan diluluskan menggunakan parameter kata kunci c, ralat parameter haram akan berlaku:

result = func(1, 2, c=4, 5)
Salin selepas log masuk

Kedua-dua parameter kata kunci dan parameter kedudukan digunakan di sini, mengakibatkan ketidakpadanan parameter.

  1. Melalui parameter jenis haram

Ralat parameter yang tidak sah juga boleh berlaku apabila jenis parameter yang diluluskan tidak konsisten dengan jenis parameter yang ditentukan oleh fungsi atau kaedah. Sebagai contoh, definisi fungsi berikut memerlukan parameter integer:

def func(num):
    return num * 2
Salin selepas log masuk

Tetapi apabila parameter rentetan diluluskan, ralat parameter haram berlaku:

result = func('hello')
Salin selepas log masuk

Apa yang diluluskan di sini ialah parameter jenis rentetan, tetapi definisi fungsi memerlukan Parameter taip integer.

3. Bagaimana untuk menyelesaikan ralat parameter panggilan Python haram

Apabila ralat parameter Python haram berlaku, penyelesaian biasa termasuk yang berikut:

  1. Semak nombor dan jenis parameter

Mula-mula anda perlu menyemak semasa membuat panggilan fungsi atau kaedah Sama ada bilangan dan jenis parameter yang diluluskan adalah konsisten dengan bilangan dan jenis parameter yang ditakrifkan oleh fungsi atau kaedah. Sebagai contoh, kod berikut menyemak sama ada bilangan parameter yang diluluskan semasa memanggil fungsi adalah betul:

def func(a, b, c):
    pass

args = (1, 2, 3)
if len(args) != 3:
    print('参数数量不正确')
else:
    func(*args)
Salin selepas log masuk

Di sini, tuple args digunakan untuk menyimpan parameter yang diluluskan, dan kemudian menyemak sama ada panjang args adalah sama dengan 3. Jika tidak , ia menggesa bahawa bilangan parameter tidak betul, jika tidak func dipanggil fungsi.

  1. Gunakan parameter kata kunci

Menggunakan parameter kata kunci boleh mengelakkan masalah susunan parameter yang salah dan juga boleh meningkatkan kebolehbacaan kod. Sebagai contoh, kod berikut memanggil fungsi menggunakan argumen kata kunci:

def func(a, b, c):
    pass

params = {'a': 1, 'b': 2, 'c': 3}
func(**params)
Salin selepas log masuk

Di sini, param kamus digunakan untuk menyimpan parameter yang diluluskan apabila fungsi dipanggil, dan kemudian **params digunakan untuk membongkar parameter dalam param dan menghantarnya kepada fungsi.

  1. Tetapkan nilai lalai

Menetapkan nilai lalai untuk parameter fungsi atau kaedah boleh menjadikannya lebih fleksibel apabila dipanggil. Sebagai contoh, definisi fungsi berikut menetapkan nilai parameter lalai:

def func(a, b=0, c=0):
    pass
Salin selepas log masuk

Apabila memanggil fungsi, anda boleh menghantar hanya satu parameter a, atau anda boleh menghantar kedua-dua b dan c pada masa yang sama:

func(1)              # 只传递a参数,b和c使用默认值0
func(1, 2, 3)        # 传递a、b和c参数
func(a=1, c=3)       # 使用关键字参数传递a和c参数,b使用默认值0
Salin selepas log masuk

Nilai lalai ​​​​daripada b dan c di sini adalah kedua-duanya 0, Jika tiada parameter diluluskan, nilai lalai digunakan.

  1. Catch exceptions

Apabila ralat parameter Python haram berlaku, atur cara mungkin ranap atau mengeluarkan mesej ralat. Untuk mengelakkan situasi ini, pengecualian boleh ditangkap dan dikendalikan dalam program. Sebagai contoh, dalam kod berikut, pernyataan cuba-kecuali digunakan untuk menangkap pengecualian dengan parameter haram:

def func(a, b):
    pass

try:
    result = func(1)
except TypeError:
    print('参数不合法')
Salin selepas log masuk

Hanya satu parameter diluluskan apabila memanggil fungsi func, tetapi definisi fungsi memerlukan dua parameter, jadi ralat parameter haram berlaku . Gunakan pernyataan cuba-kecuali untuk menangkap dan mengendalikan pengecualian ini dan mengeluarkan maklumat segera.

Ringkasnya, ralat parameter panggilan Python yang tidak sah boleh menjejaskan hasil berjalan dan prestasi program, tetapi ralat ini boleh dielakkan dengan menggunakan kaedah yang sesuai. Dalam pengaturcaraan harian, anda perlu menyemak nombor, jenis dan nilai lalai parameter fungsi atau kaedah dengan teliti dan elakkan menggunakan kaedah lulus parameter campuran. Pada masa yang sama, untuk pengecualian yang tidak dapat dielakkan, pernyataan cuba-kecuali perlu digunakan untuk menangkap ralat dan mengendalikan pengecualian.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat parameter panggilan tidak sah Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyelesaian ralat 0x80070026: pembetulan ralat kemas kini versi win101909 Penyelesaian ralat 0x80070026: pembetulan ralat kemas kini versi win101909 Dec 25, 2023 pm 05:10 PM

Semasa proses mengemas kini sistem, ramai rakan menemui gesaan kod ralat 0x80070026 dan tidak tahu cara menyelesaikannya Keadaan ini mungkin disebabkan oleh ralat dalaman dalam sistem, yang boleh dibaiki dalam gesaan arahan. Bagaimana untuk menyelesaikan ralat kemas kini versi win101909 0x80070026 1. Mula-mula lancarkan menu "Start", masukkan "cmd", klik kanan "Command Prompt" dan pilih jalankan sebagai "Administrator". 2. Kemudian masukkan arahan berikut dalam urutan (salin dan tampal dengan teliti): SCconfigwuauservstart=auto, tekan Enter SCconfigbitsstart=auto, tekan Enter SCconfigcryptsvc

Menyelesaikan masalah pemasangan panda biasa: tafsiran dan penyelesaian kepada ralat pemasangan Menyelesaikan masalah pemasangan panda biasa: tafsiran dan penyelesaian kepada ralat pemasangan Feb 19, 2024 am 09:19 AM

Tutorial pemasangan Pandas: Analisis ralat pemasangan biasa dan penyelesaiannya, contoh kod khusus diperlukan Pengenalan: Pandas ialah alat analisis data yang berkuasa yang digunakan secara meluas dalam pembersihan data, pemprosesan data dan visualisasi data, jadi ia sangat dihormati dalam bidang sains data. Walau bagaimanapun, disebabkan oleh konfigurasi persekitaran dan isu pergantungan, anda mungkin menghadapi beberapa kesukaran dan ralat semasa memasang panda. Artikel ini akan memberi anda tutorial pemasangan panda dan menganalisis beberapa ralat pemasangan biasa serta penyelesaiannya. 1. Pasang panda

Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan mime_content_type() Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan mime_content_type() Jun 23, 2023 am 08:42 AM

Penyelesaian kepada PHPFatalerror:Calltoundefinedfunctionmime_content_type() Dalam proses membangunkan projek PHP, kadangkala anda akan sering menghadapi masalah ini - "PHPFatalerror:Calltoundefinedfunctionmime_content_type()" Ralat ini biasanya berlaku apabila menggunakan PHPM

Bagaimana untuk menyelesaikan ralat '[Vue warn]: prop diperlukan hilang'. Bagaimana untuk menyelesaikan ralat '[Vue warn]: prop diperlukan hilang'. Aug 26, 2023 pm 06:57 PM

Bagaimana untuk menyelesaikan ralat "[Vuewarn]:Missingrequiredprop" Semasa membangunkan aplikasi Vue, anda kadangkala menghadapi mesej ralat biasa: "[Vuewarn]:Missingrequiredprop". Ralat ini biasanya merujuk kepada kekurangan nilai sifat yang diperlukan dalam komponen, menyebabkan komponen gagal untuk dipaparkan dengan betul. Penyelesaian kepada masalah ini adalah mudah. ​​Kita boleh mengelakkan dan menangani kesilapan ini melalui beberapa kemahiran dan peraturan. Berikut adalah beberapa penyelesaian

Bagaimana untuk menyelesaikan ralat fatal win11steam Bagaimana untuk menyelesaikan ralat fatal win11steam Dec 26, 2023 pm 04:49 PM

Apabila sesetengah pemain menggunakan win11 untuk membuka wap atau permainannya, gesaan ralat maut muncul Jadi bagaimana untuk menyelesaikan ralat fatal win11, sebenarnya, ini berkaitan dengan jenis ralat. Bagaimana untuk menyelesaikan ralat maut win11steam 1. Mula-mula, sahkan sebab berikut untuk ralat maut. Seperti yang anda lihat dalam gambar di bawah, ralat ini disebabkan terutamanya oleh "laluan folder". 2. Jadi kita hanya perlu mengubah suai laluan pemasangan wap dan "tukar semua bahasa Cina kepada bahasa Inggeris". 3. Jika permainan tidak boleh dibuka, klik kanan untuk membuka tetapan "Properties" dan klik untuk memasukkan "Fail Tempatan". 4. Kemudian, pilih pilihan "Pindahkan folder pemasangan" dan alihkannya ke laluan tanpa nama Cina. 5

Penjelasan terperinci tentang ralat Oracle 3114: Cara menyelesaikannya dengan cepat Penjelasan terperinci tentang ralat Oracle 3114: Cara menyelesaikannya dengan cepat Mar 08, 2024 pm 02:42 PM

Penjelasan terperinci tentang ralat Oracle 3114: Bagaimana untuk menyelesaikannya dengan cepat, contoh kod khusus diperlukan Semasa pembangunan dan pengurusan pangkalan data Oracle, kami sering menghadapi pelbagai ralat, antaranya ralat 3114 adalah masalah yang agak biasa. Ralat 3114 biasanya menunjukkan masalah dengan sambungan pangkalan data, yang mungkin disebabkan oleh kegagalan rangkaian, pemberhentian perkhidmatan pangkalan data atau tetapan rentetan sambungan yang salah. Artikel ini akan menerangkan secara terperinci punca ralat 3114 dan cara menyelesaikan masalah ini dengan cepat, dan melampirkan kod tertentu

Ralat Java: Ralat Penghuraian XML, Cara Membetulkan dan Mengelak Ralat Java: Ralat Penghuraian XML, Cara Membetulkan dan Mengelak Jun 24, 2023 pm 05:46 PM

Memandangkan Java semakin digunakan secara meluas dalam medan Internet, banyak pembangun mungkin menghadapi masalah "ralat penghuraian XML" apabila menggunakan XML untuk penghuraian data. Ralat penghuraian XML bermakna apabila menggunakan Java untuk menghuraikan data XML, atur cara tidak boleh menghuraikan data secara normal disebabkan oleh format data yang salah, teg tidak ditutup atau sebab lain, sekali gus menyebabkan ralat dan pengecualian. Jadi, bagaimanakah kita harus menyelesaikan dan mengelak apabila menghadapi ralat penghuraian XML? Artikel ini akan menerangkan isu ini secara terperinci. 1. Penghuraian XML

Ralat Java: Ralat Eclipse, Cara Membetulkan dan Mengelak Ralat Java: Ralat Eclipse, Cara Membetulkan dan Mengelak Jun 25, 2023 am 09:09 AM

Java, sebagai bahasa pengaturcaraan yang sangat berkuasa dan popular, digunakan secara meluas dalam pelbagai aplikasi komputer dan bidang pembangunan. Semasa menulis kod Java, anda sering menghadapi pelbagai mesej ralat, yang mungkin menjejaskan kompilasi dan pengendalian biasa kod. Antaranya, Eclipse ialah persekitaran pembangunan bersepadu yang digunakan secara meluas, dan adalah perkara biasa untuk menghadapi ralat dalam Eclipse. Artikel ini akan meneroka beberapa ralat biasa Eclipse dan menyediakan cara untuk menyelesaikan dan mengelakkannya. 1. Gerhana Biasa

See all articles