ອານຸພາສານ Python
- ຫນ້າກ່ອນ ການລວມປະກອບຂອງ Python
- ຫນ້າຫນັງ ພາຍວັດຖຸ Python
ອານຸພາສານ Python
ອານຸພາສານແມ່ນວັດຖຸທີ່ມີຈຳນວນຄວາມສາມາດຂອງ
ອານຸພາສານແມ່ນວັດຖຸທີ່ສາມາດເພື່ອການ
ເທື່ອທີ່ສາມາດເວົ້າໄດ້ໃນ Python,ອານຸພາສານແມ່ນວັດຖຸທີ່ __iter__()
ແລະ __next__()
。
ການສ້າງອານຸພາສານ VS ບັນດາວັດຖຸສາມາດເພື່ອການ
ລະບົບວັດຖຸລະບົບທີ່ສາມາດເພື່ອການ
ທຸກບັນດາວັດຖຸນີ້ມີກົນລະບົບເພື່ອ iter()
ກົນລະບົບຂອງ
ຄວາມປະຈຳລາຍ
ການສ້າງອານຸພາສານຈາກວັດຖຸ
mytuple = ("apple", "banana", "cherry") myit = iter(mytuple) print(next(myit)) print(next(myit)) print(next(myit))
ການສ້າງອານຸພາສານຈາກວັດຖຸ
ຄວາມປະຈຳລາຍ
ການສ້າງອານຸພາສານຈາກຄຳຕະກຳ
mystr = "banana" myit = iter(mystr) print(next(myit)) print(next(myit)) print(next(myit)) print(next(myit)) print(next(myit)) print(next(myit))
ການອານຸພາສານ
ພວກເຮົາກໍ່ສາມາດໃຊ້ for 循环ເພື່ອການ
ຄວາມປະຈຳລາຍ
ການສ້າງອານຸພາສານຈາກວັດຖຸ
mytuple = ("apple", "banana", "cherry") for x in mytuple: print(x)
ຄວາມປະຈຳລາຍ
ການສ້າງອານຸພາສານຈາກຄຳຕະກຳ
mystr = "banana" for x in mystr: print(x)
ຂໍ້ສັນຍານ:for 循环ແມ່ນການສ້າງອານຸພາສານວັດຖຸແລະໃຫ້ການ ຖ້າທີ່ທ່ານມີຄວາມພະຍາຍາມ
ກົນລະບົບຂອງ
ສ້າງອານຸພາສານ
ເພື່ອສ້າງບັນດາວັດຖຸ/ບັນດາວັດຖຸເປັນອານຸພາສານໄດ້ຈະຕ້ອງໃຫ້ບັນດາວັດຖຸມີການ __iter__()
ແລະ __next__()
ກົນລະບົບຂອງ
ຄືທີ່ເຈົ້າໄດ້ຮຽນໃນຫົວຂໍ້ວັດຖຸ/ບັນດາວັດຖຸຂອງ Python,ທຸກວັດຖຸມີຊື່ __init__()
ການຕັດສິນລະບົບທີ່ຈະອະນຸຍາດທາງເຈົ້າໃນການກຳນົດຄວາມພິຈາລະນາຫຼັງຈາກທີ່ເຈົ້າສ້າງບັນດາວັດຖຸ。
__iter__()
__iter__()
__next__()
ວິທີກໍ່ມີຄວາມຄິດທີ່ຄືກັນ, ທ່ານສາມາດດຳເນີນການ (ການລິການເລີ່ມຕົ້ນແລະອີກ), ແຕ່ຕ້ອງສະເໜີວັດຖຸອຸປະກອນຫນ້າຫນັງເອງ.
ຄວາມປະຈຳລາຍ
ວິທີກໍ່ສາມາດສາຍການດຳເນີນການ, ແລະຕ້ອງມີການສະເໜີວັດຖຸໃນທີ່ຕໍ່ໄປຂອງວົງການ.
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): x = self.a self.a += 1 return x myclass = MyNumbers() myiter = iter(myclass) ສ້າງອຸປະກອນຫນ້າຫນັງທີ່ກັບຄືນສະເໜີຈຳນວນ, ຈະເລີ່ມຈາກ 1, ທີ່ຈະເພີ່ມຂຶ້ນ 1 ຕໍ່ການຫນ້າຫນັງ (ກັບຄືນສະເໜີ 1, 2, 3, 4, 5 ແລະອີກ). ສ້າງອຸປະກອນຫນ້າຫນັງທີ່ກັບຄືນສະເໜີຈຳນວນ, ຈະເລີ່ມຈາກ 1, ທີ່ຈະເພີ່ມຂຶ້ນ 1 ຕໍ່ການຫນ້າຫນັງ (ກັບຄືນສະເໜີ 1, 2, 3, 4, 5 ແລະອີກ). ສ້າງອຸປະກອນຫນ້າຫນັງທີ່ກັບຄືນສະເໜີຈຳນວນ, ຈະເລີ່ມຈາກ 1, ທີ່ຈະເພີ່ມຂຶ້ນ 1 ຕໍ່ການຫນ້າຫນັງ (ກັບຄືນສະເໜີ 1, 2, 3, 4, 5 ແລະອີກ). ສ້າງອຸປະກອນຫນ້າຫນັງທີ່ກັບຄືນສະເໜີຈຳນວນ, ຈະເລີ່ມຈາກ 1, ທີ່ຈະເພີ່ມຂຶ້ນ 1 ຕໍ່ການຫນ້າຫນັງ (ກັບຄືນສະເໜີ 1, 2, 3, 4, 5 ແລະອີກ). ສ້າງອຸປະກອນຫນ້າຫນັງທີ່ກັບຄືນສະເໜີຈຳນວນ, ຈະເລີ່ມຈາກ 1, ທີ່ຈະເພີ່ມຂຶ້ນ 1 ຕໍ່ການຫນ້າຫນັງ (ກັບຄືນສະເໜີ 1, 2, 3, 4, 5 ແລະອີກ).
StopIteration
print(next(myiter)) ຖ້າທີ່ທ່ານມີຄວາມພະຍາຍາມ
next()
ເພື່ອປ້ອງກັນຈາກການຫນ້າຫນັງບໍ່ຢຸດສະຫງັກ, ພວກເຮົາສາມາດໃຊ້ຄຳສັ່ງ, ຫຼືໃຊ້ໃນວົງກວດສາກົນ, ຄຳສັ່ງດັ່ງກ່າວຈະຫນ້າຫນັງບໍ່ຢຸດສະຫງັກ. StopIteration
ຄຳສັ່ງ.
ໃນ __next__()
ໃນວິທີ, ຖ້າການຫນ້າຫນັງສຳເລັດຈາກຈຳນວນການຫນ້າຫນັງທີ່ກໍານົດ, ພວກເຮົາສາມາດເພີ່ມຂໍ້ການຢຸດຕິເລື່ອງຂັດແຍ່ງ:
ຄວາມປະຈຳລາຍ
ຢຸດຕິຫນ້າຫນັງພາຍໃນ 20 ການຫນ້າຫນັງ:
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): if self.a <= 20: x = self.a self.a += 1 return x else: raise StopIteration myclass = MyNumbers() myiter = iter(myclass) for x in myiter: print(x)
- ຫນ້າກ່ອນ ການລວມປະກອບຂອງ Python
- ຫນ້າຫນັງ ພາຍວັດຖຸ Python