Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Memanggil Satu Fungsi Ahli Daripada Yang Lain Dalam Kelas Python yang Sama?

Bagaimanakah Saya Memanggil Satu Fungsi Ahli Daripada Yang Lain Dalam Kelas Python yang Sama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-13 14:45:11213semak imbas

How Do I Call One Member Function From Another Within the Same Python Class?

Mengakses Fungsi Ahli Dalam Kelas

Dalam Python, kelas boleh mengandungi pelbagai kaedah untuk melaksanakan tugas tertentu. Satu senario biasa ialah mempunyai dua kaedah dalam kelas yang sama, dengan satu kaedah memanggil yang lain. Walau bagaimanapun, sintaks untuk mencapai ini mungkin tidak jelas dengan serta-merta.

Contoh Senario

Pertimbangkan coretan kod berikut:

class Coordinates:
    def distToPoint(self, p):
        # Calculate distance using Pythagoras

    def isNear(self, p):
        distToPoint(self, p)
        # ...

Dalam ini contoh, kelas Coordinates mentakrifkan dua kaedah: distToPoint, yang mengira jarak antara koordinat ini dan titik lain, dan isNear, yang menyemak sama ada koordinat ini berada berhampiran titik yang ditentukan. Matlamat kami adalah untuk menggunakan distToPoint within isNear.

Penyelesaian: Menggunakan Invocation Fungsi Ahli

Untuk memanggil fungsi ahli dalam kelas yang sama, kami menggunakan sintaks diri.< ;nama_fungsi>(argumen). Dalam kes ini, self merujuk kepada contoh semasa kelas, dan function_name ialah nama fungsi yang ingin kami gunakan.

Oleh itu, dalam kaedah isNear, kami akan memanggil distToPoint seperti berikut:

def isNear(self, p):
    self.distToPoint(p)
    # ...

Dengan menggunakan pendekatan ini, kami boleh memanggil fungsi ahli dengan lancar dari dalam kelas yang sama.

Atas ialah kandungan terperinci Bagaimanakah Saya Memanggil Satu Fungsi Ahli Daripada Yang Lain Dalam Kelas Python yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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