Using Assignment Expressions
Python assignment expression
Vazifa Ifodalari (Assignment Expressions)dan Foydalanish
Vazifa ifodalari hali ham nisbatan kamdan-kam uchraydi. Ammo, siz vazifa ifodalarini bilishingiz kerak, chunki ular bilan vaqt-vaqti bilan duch kelishingiz mumkin. PEP 572 da vazifa ifodalari bo'yicha yaxshi misollar mavjud.
Ushbu 3 misolda, ifoda bayonotida o'zgaruvchini yaratmoqdasiz. Birinchi misol regex pattern search natijasini o'zgaruvchi matchga tayinlaydi. Ikkinchi misolda, o'zgaruvchi value funksiya chaqiruvi natijasiga tayinlanadi, while siklida ifoda ichida. Nihoyat, uchinchi misolda, f(x) chaqiruvining natijasi y o'zgaruvchisiga tayinlanadi ro'yxatni tushirishda.
Vazifa ifodalari ishlatilgan va ishlatilmagan kodlar orasidagi farqni ko'rish foydali bo'lishi mumkin. Mana, faylni bo'laklarga o'qishning bir misoli:
Ushbu kod, hajmi noma'lum bo'lgan faylni ochadi va uni har 1024 baytdan qayta ishlaydi. Bu, juda katta fayllar bilan ishlashda foydalidir, chunki bu faylni butunlay xotiraga yuklashdan saqlaydi. Agar buni qilsangiz, xotira tugashi va ilovangiz yoki hatto kompyuteringiz ishdan chiqishi mumkin.
Endi bu kodni vazifa ifodasi yordamida qisqartirish mumkin:
Bu yerda, read() natijasini while siklida data o'zgaruvchisiga tayinlaysiz. Bu sizga o'zgaruvchidan foydalanish imkoniyatini beradi va ba'zi ma'lumotlar qaytarilganini tekshiradi, shuning uchun if not data: break qismiga ehtiyoj qolmaydi.
PEP 572da keltirilgan yana bir yaxshi misol, Pythonning o'z site.py faylidan olingan. Mana, dastlabki kod qanday edi:
Endi, bu vazifa ifodasi yordamida qanday qisqartirilgan bo'lishi mumkin:
Siz tayinlashni shartli bayonotning ifodasiga ko'chirasiz, bu esa kodni sezilarli darajada qisqartiradi.
Endi vazifa ifodalari ishlatilmaydigan ba'zi holatlarni ko'rib chiqaylik.
Last updated on