Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Memanggil Kaedah Kelas Python Secara Terus Menghasilkan 'TypeError: Hilang Argumen Diperlukan 'diri''?

Mengapa Memanggil Kaedah Kelas Python Secara Terus Menghasilkan 'TypeError: Hilang Argumen Diperlukan 'diri''?

Mary-Kate Olsen
Lepaskan: 2024-12-30 18:09:09
asal
327 orang telah melayarinya

Why Does Calling a Python Class Method Directly Result in a

Memahami TypeError: Hilang Argumen Diperlukan "diri" dalam Python

Apabila bekerja dengan contoh dan kaedah kelas Python, adalah penting untuk memahami konsep daripada parameter "diri". Isu ini timbul apabila memanggil kaedah kelas secara terus tanpa menginstant objek, mengakibatkan pengecualian "TypeError: Missing 1 positional argument: 'self'".

Untuk menangani isu ini, adalah penting untuk membuat instantiate objek kelas terlebih dahulu , yang boleh dicapai dengan menggunakan nama kelas diikuti dengan kurungan. Dalam kod yang diberikan, bukannya memanggil terus Pump.getPumps(), nyatakan objek dahulu dan kemudian akses kaedah getPumps(). Berikut ialah kod yang diperbetulkan:

class Pump:
    def __init__(self):
        print("init")

    def getPumps(self):
        pass

# Create an object of the Pump class
p = Pump()

# Call the getPumps() method through the object
p.getPumps()
Salin selepas log masuk

Parameter "diri" merujuk kepada tika semasa kelas dan ia dihantar secara automatik kepada semua kaedah tika. Apabila memanggil kaedah kelas secara terus tanpa instance, Python tidak tahu objek mana kaedah itu harus beroperasi, maka ralat "hujah 'diri' yang hilang".

Dengan menginstant objek dahulu, anda mewujudkan sambungan antara kaedah dan data objek. Ini membenarkan kaedah untuk mengakses dan memanipulasi atribut objek, seperti yang dimaksudkan dalam pengaturcaraan berorientasikan objek.

Atas ialah kandungan terperinci Mengapa Memanggil Kaedah Kelas Python Secara Terus Menghasilkan 'TypeError: Hilang Argumen Diperlukan 'diri''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan