Hosildorlik to'g'risida hisobot Python-dagi generatorlarni aniqlash uchun ishlatiladi. Shunday qilib, aniq hosil beradigan narsaga kirishdan oldin, avvalo generator tushunchasini tushunishimiz kerak. Python-da generatorlar katta ahamiyatga ega va agar siz Python dasturlash dasturini chuqur bilsangiz, Python generatorlari bilan ishlagan bo'lishingiz mumkin. Generatorlar Python-da iteratorlarni yaratish uchun ishlatiladi, ammo boshqacha yondashuv bilan.

Python generatorlari natijalar ketma-ketligini keltirib chiqaradigan funktsiyalar bo'lib, to'xtatib turilishi va dinamik ravishda qayta tiklanishi mumkin. Birinchi marta Python 2.2-da generatorlar ixtiyoriy xususiyat sifatida qo'shilgan va Python 2.3-da standart qilingan. Garchi ular etarlicha kuchli bo'lsa ham, Python 2.5-da generatorlarning funktsiyalari sezilarli darajada yaxshilandi.

Python 2.2-da generatorlar qayta qo'shilganda, u orqaga mosligi uchun yangi "hosil" kalit so'zini taqdim etdi, buning uchun generatorlarni ulardan foydalanish uchun _future_ modulidan import qilishimiz kerak edi. Bu Python 2.3 versiyasida generatorlar standart holga kelganida o'zgartirildi va endi kerak emas edi.

Hosildorlik to'g'risida hisobot funktsiyani bajarishni to'xtatadi va qo'ng'iroq qiluvchiga qiymatni qaytarib yuboradi, holatni saqlab qolish va keyin yana davom ettirish ma'nosi, butun generator o'zi qaytib kelgandan keyin ham davom ettirilishi mumkin. Qaytish bayonoti funktsiyaning bajarilishini tugatadi va qo'ng'iroq qiluvchiga qiymatni qaytaradi. Busiz, sizning vazifangiz hech narsani qaytarmaydi. Keling, hosilni qachon va qachon Python-ga qaytarishni ishlatishni yaxshilab ko'rib chiqaylik.

Python Yield nima?

Mahsulot rentabelligi Python generatorlarida mahalliy o'zgaruvchilarni buzmasdan qiymatni qaytaruvchiga qaytarish uchun funktsiyaning qaytarilishini almashtirish uchun ishlatiladi. Python dasturlashda rentabellik to'g'risidagi hisobot qanday rol o'ynashini yaxshiroq tushunish uchun generatorlar nima ekanligini tushunishingiz kerak.

Jeneratör funktsiyalari odatdagi funktsiyalar singari ta'rifi bo'yicha ishlab chiqariladi, ammo ularda «rentabellik» to'g'risidagi ma'lumotlar mavjud. Bu "rentabellik" kalit so'zidan boshlanadi, u qo'ng'iroq qiluvchiga qaytarilishi kerak bo'lgan generator ob'ektini belgilaydi. Jeneratör - bu Python-dagi ma'lumot vazifasini emas, balki qo'ng'iroq qiluvchiga generator ob'ektini qaytaradigan maxsus funktsiya. "Kalit so'z" daromad funktsiyasini bajarishni to'xtatish, saqlash holatini saqlab qolish va keyinchalik davom ettirishning o'ziga xos xususiyatiga ega.

Python Qaytish nima?

Qaytish bayonoti, rentabellik to'g'risidagi hisobotdan farqli o'laroq, funktsiyani bajaradi va qo'ng'iroq qiluvchiga qiymatni beradi. Vazifalar o'zlarining qo'ng'iroq qiluvchilariga qiymatni qaytaradi va protsessual xarakterga ega bo'lgan narsalar hech narsa aniq qaytarib bermaydi. Funktsiyada bir nechta qaytish bayonotlari bo'lishi mumkin, ammo har qanday funktsiyani chaqirish uchun ulardan faqat bittasini chaqirish mumkin.

Odatda, funktsiya blokining eng oxirida ushbu funktsiya tarkibidagi barcha ko'rsatmalarning bajarilishining yakuniy natijasini qaytarish uchun return operatori paydo bo'ladi. Shu bilan birga, u shu blokdagi barcha keyingi bayonotlarni bajarishni to'xtatish uchun avval funktsional blokda paydo bo'lishi mumkin. Bu darhol dasturni chaqiruvchida bajarilishini tiklaydi. Agar qiymat ko'rsatilmagan bo'lsa, Python-dagi qaytish ob'ektining ekvivalenti “None” dir.

Python Yield va Return o'rtasidagi farq

  1. Python Yield va qaytish bilan bog'liq asoslar
  • Mahsulot rentabelligi Python generatorlarida mahalliy o'zgaruvchilarni buzmasdan qiymatni qaytaruvchiga qaytarish uchun funktsiyaning qaytarilishini almashtirish uchun ishlatiladi. Jeneratör - bu Python-dagi ma'lumot vazifasini emas, balki qo'ng'iroq qiluvchiga generator ob'ektini qaytaradigan maxsus funktsiya. Qaytish bayonoti, rentabellik to'g'risidagi hisobotdan farqli o'laroq, funktsiyani bajaradi va qo'ng'iroq qiluvchiga qiymatni beradi. Odatda, funktsiya blokining eng oxirida ushbu funktsiya tarkibidagi barcha ko'rsatmalarning bajarilishining yakuniy natijasini qaytarish uchun return operatori paydo bo'ladi. Barcha funktsiyalar qiymatni qaytaradi va agar qiymat ko'rsatilmagan bo'lsa, u "None" ni qaytaradi.
  1. Python Yield va Return-dagi funktsiyalar va boshqalar
  • Hosildorlik to'g'risida aniq ma'lumot Python generatorlari bilan qo'llaniladi. Sintaktik jihatdan, generator - bu rentabellik to'g'risida hisobot beradigan funktsiya. Funktsiyada bir nechta qaytish bayonotlari bo'lishi mumkin, ammo har qanday funktsiyani chaqirish uchun ulardan faqat bittasini chaqirish mumkin. Faqat bir marta qaytaradigan funktsiyadan farqli o'laroq, generatorlar bajarishni to'xtatib, oraliq natijalarga erishishlari mumkin. Har bir generator funktsiya sifatida belgilanadi, ammo qaytish kalit so'zining o'rniga, kirish bloki vaqtincha vaqtinchalik ekanligini va qaytish qiymati olinganidan keyin ham butun generatorni davom ettirish mumkinligini ko'rsatish uchun funktsiya blokining ichida hosil qiluvchi kalit so'z ishlatiladi.
  1. Python Yield va Return-ni bajarish
  • Qaytish bayonoti funktsiyaning bajarilishini to'xtatadi va chaqiruvchiga qiymatni qaytaradi. Vazifalar o'zlarining qo'ng'iroq qiluvchilariga qiymatni qaytaradi va protsessual xarakterga ega bo'lgan narsalar hech narsa aniq qaytarib bermaydi. Asosan nima funktsiyadan chiqish va barcha mahalliy qiymatlarni yo'q qilishdir. O'z navbatida, rentabellik to'g'risidagi hisobot funktsiyaning bajarilishini to'xtatib turish uchun qiymatning o'rnini bosadi va mahalliy o'zgaruvchilarni buzmasdan qiymatni chaqiruvchiga qaytaradi. Ammo, qaytish funktsiyasidan farqli o'laroq, rentabellik funktsiyaning bajarilishini to'xtatilgan joydan boshlaydi.

Qaytish: taqqoslash jadvali

Python samarasi va qaytishi haqida qisqacha ma'lumot

Sintaktik jihatdan, rentabellik bu qaytish so'zi kabi ishlatilishi mumkin bo'lgan kalit so'zdir, bundan tashqari, return operatori sizning funktsiyangiz bajarilishini tugatadi va qo'ng'iroq qiluvchiga qiymatni qaytaradi. Qaytish bayonotining vazifasi kirishni kiritish va qo'ng'iroq qiluvchiga biror narsani qaytarishdir. Qaytarilishdan farqli o'laroq, rentabellik to'g'risidagi hisobot generatorlarni aniqlash uchun aniq ishlatiladi, funktsiyaning qaytish qiymatini mahalliy o'zgaruvchini saqlamay to'xtatib turish uchun almashtiradi, qaytish bayonotida esa barcha mahalliy o'zgaruvchilar yo'q qilinadi.

Adabiyotlar

  • Nguyen, Quan. Pythonda kelishuvlarni o'zlashtirish. Birmingem: Packt Publishing, 2018. Chop etish
  • Philllips, Dusty. Python 3 ob'ektga yo'naltirilgan dasturlash. Birmingem: Packt Publishing, 2018. Chop etish
  • Martelli, Aleks va boshq. Python uchun qo'llanma. Sebastopol, Kaliforniya: munosabatReilly Media, 2005. Chop etish
  • Tasvir krediti: https://commons.wikimedia.org/wiki/File:Python_example.jpg
  • Rasm krediti: https://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Examples_for_calculating_the_square_root_of_2_with_Heron%27s_method.svg/500px-Examples_for_calculating_the_square_root_on