Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Memanggil Satu Fungsi Kelas daripada Lain Dalam Kelas yang Sama dalam Python?
Fungsi Memanggil Dalam Kelas: Pendekatan Praktikal
Dalam pengaturcaraan berorientasikan objek, kelas merangkum data dan fungsi, menyusunnya ke dalam entiti logik. Apabila anda perlu melakukan operasi pada objek ini, anda boleh menentukan fungsi ahli dalam kelas. Walau bagaimanapun, tidak semestinya jelas cara memanggil satu fungsi dari dalam yang lain apabila kedua-duanya ditakrifkan dalam kelas yang sama.
Isunya:
Pertimbangkan kod berikut yang mengira jarak antara koordinat:
class Coordinates: def distToPoint(self, p): # Calculate distance using Pythagoras' theorem def isNear(self, p): # How do we call distToPoint from isNear?
Dalam contoh ini, kami ingin menentukan sama ada satu titik berada berhampiran titik lain menggunakan fungsi distToPoint. Bagaimanakah kita menggunakan fungsi ini dalam fungsi isNear?
Penyelesaian:
Untuk memanggil fungsi ahli dalam kelas yang sama, kita perlu menggunakan contoh bagi kelas (dirujuk sebagai kendiri oleh konvensyen) untuk mengakses kaedahnya. Fungsi isNear yang diperbetulkan akan kelihatan seperti ini:
class Coordinates: def distToPoint(self, p): # Calculate distance using Pythagoras' theorem def isNear(self, p): self.distToPoint(p) # Continue with other operations
Dengan menambahkan diri sebelum distToPoint, kami secara jelas menunjukkan bahawa kami ingin memanggil fungsi ahli distToPoint pada contoh diri kelas Coordinates.
Contoh Penggunaan:
Untuk menggunakan kod ini, anda akan mencipta contoh kelas Coordinates dan kemudian memanggil fungsi isNear pada contoh itu:
coordinates = Coordinates() coordinates.isNear(another_point)
Ini akan mengira jarak antara koordinat kejadian dan another_point yang ditentukan menggunakan fungsi distToPoint.
Atas ialah kandungan terperinci Bagaimanakah Saya Memanggil Satu Fungsi Kelas daripada Lain Dalam Kelas yang Sama dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!