Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tentukan objek boleh lelar menggunakan fungsi __len__() dan __getitem__() Python

Tentukan objek boleh lelar menggunakan fungsi __len__() dan __getitem__() Python

WBOY
WBOYasal
2023-08-22 09:34:46982semak imbas

Tentukan objek boleh lelar menggunakan fungsi __len__() dan __getitem__() Python

Gunakan fungsi __len__() dan __getitem__() Python untuk mentakrifkan objek boleh lelar

Baru-baru ini, semasa saya belajar Python, saya menemui satu fungsi yang sangat menarik, iaitu untuk mentakrifkan objek boleh lelar dengan mentakrifkan __len__() dan __getitem Fungsi boleh mentakrifkan objek boleh lelaran sendiri. Dalam artikel ini, saya akan memperkenalkan cara menggunakan kedua-dua fungsi ini untuk menentukan objek yang boleh diulang dan memberikan contoh kod yang sepadan.

Dalam Python, fungsi __len__() digunakan untuk mengembalikan panjang objek, iaitu bilangan elemen. Fungsi ini perlu mengembalikan integer. Jika kita mentakrifkan objek sendiri dan mahu boleh menggunakan fungsi seperti len() untuk mendapatkan panjang objek, maka kita boleh mentakrifkan fungsi __len__() dalam objek tersebut.

Berikut ialah contoh yang menunjukkan cara mentakrifkan objek boleh lelar dan mentakrifkan fungsi __len__() di dalamnya:

class MyList:
  def __init__(self):
    self.data = []
  
  def __len__(self):
    return len(self.data)

Dalam contoh ini, kami mentakrifkan kelas MyList dan mentakrifkan __len__() di dalamnya fungsi. Fungsi ini mengembalikan panjang self.data, iaitu bilangan elemen dalam objek tersuai kami.

Sebagai tambahan kepada fungsi __len__(), kita juga boleh menggunakan fungsi __getitem__() untuk mendapatkan elemen dalam objek. Fungsi ini mengambil indeks sebagai parameter dan mengembalikan elemen yang sepadan. Dengan mentakrifkan fungsi __getitem__(), kita boleh mendapatkan elemen dalam objek tersuai mengikut indeks sama seperti menggunakan senarai atau tuple.

Berikut ialah contoh yang menunjukkan cara mentakrifkan fungsi __getitem__() dalam objek boleh lelar:

class MyList:
  def __init__(self):
    self.data = []

  def __len__(self):
    return len(self.data)
  
  def __getitem__(self, index):
    return self.data[index]

Dalam contoh ini, kami telah mentakrifkan fungsi __getitem__() dalam kelas MyList. Fungsi ini menerima indeks sebagai parameter dan mengembalikan elemen indeks yang sepadan dalam diri.data.

Dengan mentakrifkan dua fungsi __len__() dan __getitem__(), kita boleh menggunakan objek boleh lelar yang ditentukan kita sendiri seperti menggunakan senarai. Berikut ialah contoh yang menunjukkan cara menggunakan objek boleh lelar tersuai kami:

mylist = MyList()
mylist.data = [1, 2, 3, 4, 5]

print(len(mylist))    # 输出:5

print(mylist[0])      # 输出:1
print(mylist[3])      # 输出:4

Dalam contoh ini, kami mula-mula mencipta objek MyList dan kemudian menetapkan nilai kepada atribut data objek. Seterusnya, kami menggunakan fungsi len() untuk mendapatkan panjang objek, dan mendapatkan elemen dalam objek mengikut indeks.

Melalui contoh kod di atas, kita dapat melihat bahawa dengan mentakrifkan fungsi __len__() dan __getitem__(), kita boleh menentukan sendiri objek boleh lelar dan menggunakan objek ini seperti senarai. Ciri ini sangat berkuasa dan boleh membawa fleksibiliti dan skalabiliti yang lebih besar kepada program kami.

Untuk meringkaskan, fungsi __len__() dan __getitem__() dalam Python boleh membantu kami mentakrifkan objek boleh lelar, membolehkan kami menggunakan objek tersuai seperti senarai. Dalam pengaturcaraan sebenar, kita boleh mentakrifkan kedua-dua fungsi ini mengikut keperluan kita sendiri untuk mencapai fungsi yang lebih fleksibel dan mudah. Harap artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Tentukan objek boleh lelar menggunakan fungsi __len__() dan __getitem__() Python. 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