Type Hinting Your Arguments

Ba'zi dasturlash tillari statik tiplardan foydalanadi, shuning uchun siz kodingizni kompilyatsiya qilganingizda, kompilyator sizga tiplar bilan bog'liq xatolar haqida ogohlantiradi.

SU

Argumentlaringiz uchun Tiplarni Ko'rsatish (Type Hinting)

Ba'zi dasturlash tillari statik tiplardan foydalanadi, shuning uchun siz kodingizni kompilyatsiya qilganingizda, kompilyator sizga tiplar bilan bog'liq xatolar haqida ogohlantiradi. Python esa dinamik tiplangan til, shuning uchun bu xatolar faqat ishlash vaqtida aniqlanadi.

Ammo, Python 3.5-da typing moduli qo‘shilgan, bu dasturchilarga o‘z kodlariga tip ko‘rsatmalarini (type hinting) qo‘shishga imkon beradi. Bu sizga argumentlar va qaytariladigan qiymatlarning turlarini belgilash imkonini beradi, ammo bu majburiy emas. Siz mypy kabi tashqi vositalardan foydalanib, kod bazangiz ko‘rsatgan tiplarga mos kelishini tekshirishingiz mumkin (http://mypy-lang.org/).

Python’da tiplarni ko‘rsatish majburiy emas va til tomonidan ham majburlanmaydi, ammo bu jamoada ishlayotganda, ayniqsa Python bilan tanish bo‘lmagan odamlar bilan ishlaganda foydali bo‘ladi.

Keling, oxirgi misolni tip ko‘rsatish bilan yozib ko‘ramiz:

>>> def welcome(name: str) -> None:
...     print(f'Xush kelibsiz, {name}')
...
>>> return_value = welcome('Mike')
Xush kelibsiz, Mike
>>> print(return_value)
None

Bu safar, siz name argumentini kiritganingizda, uni ikki nuqta (:) bilan tugatasiz va undan keyin kutilgan tipni yozasiz. Bu holatda, siz kiritiladigan tipning string bo‘lishini kutyapsiz. Keyin -> None: qismini ko‘rasiz. -> bu maxsus sintaksis bo‘lib, qaytariladigan qiymat kutilayotgan tipni ko‘rsatadi. Bu kodda qaytariladigan qiymat None deb belgilangan.

Agar siz qaytariladigan qiymatni aniq ko‘rsatmoqchi bo‘lsangiz, return kalit so‘zidan foydalanishingiz mumkin, undan keyin qaytarishni xohlagan qiymatingizni kiritasiz.

Kodni ishga tushirganingizda, u oldingidek ishlaydi.

Tip ko'rsatishning majburiy emasligini ko'rsatish uchun, siz Python’da return kalit so‘zi orqali butun sonni qaytarishni ko‘rsatishingiz mumkin:

>>> def welcome(name: str) -> None:
...     print(f'Xush kelibsiz, {name}')
...     return 5
...
>>> return_value = welcome('Mike')
Xush kelibsiz, Mike
>>> print(return_value)
5

Kodni ishga tushirganingizda, siz ko‘rsatgan tip None bo‘lishi kerakligini aytadi, ammo siz kodda butun son (5) ni qaytarishni ko‘rsatgansiz. Python hech qanday xato bermaydi.

Siz bu kodga nisbatan mypy vositasidan foydalanib, kod ko‘rsatmalarga mos kelishini tekshirishingiz mumkin. Agar buni qilsangiz, muammo borligini ko‘rasiz. Ushbu kitobning II qismida mypy dan foydalanishni o'rganasiz.

Asosiy xulosa shuki, Python’da tip ko‘rsatish (type hinting) qo‘llab-quvvatlanadi, lekin Python turlarning mos kelishini majburlamaydi. Ammo, ba'zi Python muharrirlari sizga turlar bilan bog‘liq muammolar haqida ogohlantirish uchun tip ko‘rsatishni ichki ravishda ishlatishi yoki siz mypy dan foydalanib qo‘lda xatolarni topishingiz mumkin.

Endi funksiyaga yana qanday ma'lumotlarni uzatishingiz mumkinligini o‘rganamiz.

Ushbu sahifada

Xato haqida xabar berish