Cara menggunakan fungsi __len__() dalam Python untuk menentukan panjang objek
Dalam Python, kita biasanya boleh mendapatkan panjang objek melalui fungsi len() terbina dalam. Walau bagaimanapun, untuk objek tersuai, fungsi len() mungkin tidak semestinya mengembalikan panjang objek dengan betul. Untuk menyelesaikan masalah ini, Python menyediakan kaedah khas __len__(). Kita boleh menentukan panjang objek dengan melaksanakan kaedah ini dalam kelas tersuai. Kaedah
__len__() ialah kaedah khas yang digunakan untuk mengembalikan panjang objek. Ia menerima parameter diri, yang mewakili objek contoh kelas. Dengan mentakrifkan kaedah ini dalam kelas, kita boleh membiarkan len() berfungsi dengan betul mendapatkan panjang objek.
Berikut ialah contoh kod:
class MyClass:
def __init__(self, data): self.data = data def __len__(self): return len(self.data)
obj = MyClass([1, 2, 3, 4, 5])
print(len(obj))
Dalam contoh kod di atas, kita A Kelas MyClass ditakrifkan, yang mengandungi data atribut. Kami mentakrifkan panjang objek dengan melaksanakan kaedah __len__() dalam kelas. Dalam kaedah __len__(), kami menggunakan fungsi len() untuk mendapatkan panjang self.data dan menggunakannya sebagai nilai pulangan.
Kemudian, kami mencipta objek contoh obj kelas MyClass dan lulus senarai yang mengandungi 5 elemen sebagai parameter kepada pembina objek ini. Akhir sekali, kami menggunakan fungsi len() untuk mendapatkan panjang objek obj dan mencetak hasilnya.
Jalankan kod di atas, hasil output ialah 5. Ini menunjukkan bahawa kami berjaya menggunakan kaedah __len__() untuk menentukan panjang objek obj.
Selain fungsi len(), beberapa fungsi dan kaedah terbina dalam lain juga boleh menggunakan kaedah __len__() untuk mendapatkan panjang objek. Sebagai contoh, kita boleh menggunakan fungsi sum() untuk mengira jumlah unsur dalam objek, dan kita juga akan menggunakan kaedah __len__().
Berikut ialah contoh kod:
class MyList:
def __init__(self, data): self.data = data def __len__(self): return len(self.data) def __getitem__(self, index): return self.data[index] def __setitem__(self, index, value): self.data[index] = value def __delitem__(self, index): del self.data[index] def __iter__(self): return iter(self.data)
my_list = MyList([1, 2, 3, 4, 5])
print(len(my_list))
print(sum(my_list))
Dalam kod sampel di atas, kami telah menentukan kelas MyList, yang mengandungi data atribut. Selain melaksanakan kaedah __len__(), kami juga melaksanakan kaedah seperti __getitem__(), __setitem__(), __delitem__() dan __iter__(), supaya objek boleh diindeks, diberikan, dipadam dan diulang seperti senarai .
Dalam kaedah __len__(), kami juga menggunakan fungsi len() untuk mendapatkan panjang self.data.
Kemudian, kami mencipta objek instance my_list kelas MyList dan lulus senarai yang mengandungi 5 elemen sebagai parameter kepada pembina objek ini. Akhir sekali, kami menggunakan fungsi len() dan fungsi sum() untuk mendapatkan panjang dan jumlah objek my_list, dan mencetak hasilnya.
Jalankan kod di atas, hasil keluaran ialah 5 dan 15. Ini menunjukkan bahawa kami berjaya menggunakan kaedah __len__() untuk menentukan panjang objek my_list, dan juga boleh mendapatkan panjang objek dengan betul apabila menggunakan fungsi dan kaedah terbina dalam yang lain.
Untuk meringkaskan, dengan melaksanakan kaedah __len__(), kita boleh mentakrifkan panjang objek dalam kelas tersuai dengan betul. Dengan cara ini, bukan sahaja fungsi len() boleh mendapatkan panjang objek dengan betul, tetapi juga beberapa fungsi dan kaedah terbina dalam lain juga boleh mendapatkan panjang objek dengan betul apabila digunakan. Pada masa yang sama, anda juga boleh menyesuaikan kaedah definisi panjang objek mengikut keperluan anda sendiri, menjadikan panjang objek fleksibel dan pelbagai.
Atas ialah kandungan terperinci Cara menggunakan fungsi __len__() untuk menentukan panjang objek dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!