If-elif-else konstruksiyasi. Rostlikka tekshirish if/else uch bo‘ginli qurilishi


Download 39.89 Kb.
bet3/4
Sana21.02.2023
Hajmi39.89 Kb.
#1217699
1   2   3   4
Bog'liq
If-elif-else

None ekanlikka tekshirish
Nonelikka tekshirishning 2 xil metodi mavjud.
Birinchi metodi – is kalit so‘zi yordamida tekshirish.
Ikkinchi metodi esa == yordamida (lekin bu metoddan foydalanish tavsiya etilmaydi, nima uchun ekanligini esa quyida tushuntirishga harakat qilamiz).
Ba’zi misollarni ko‘rib chiqaylik:
null_variable = None
not_null_variable = 'Hammaga salom!'
# is kalit so'zi
if null_variable is None:
print('null_variable is None')
else:
print('null_variable is not None')
if not_null_variable is None:
print('not_null_variable is None')
else:
print('not_null_variable is not None')
# == operatori
if null_variable == None:
print('null_variable is None')
else:
print('null_variable is not None')
if not_null_variable == None:
print('not_null_variable is None')
else:
print('not_null_variable is not None')

Bu kod quyidagi natijani chiqaradi:
null_variable is None
not_null_variable is not None
null_variable is None
not_null_variable is not None

Juda yaxshi, demak, ular bir xil ishni bajarishmoqda. Lekin unchalik emas. Tarkibiy tiplar uchun shunday. Lekin foydalanuvchi klasslari bilan ishlaganda, ehtiyot bo‘lish lozim. Python foydalanuvchi klasslarida solishtirish operatorlarini qaytadan taqsimlash imkoniyatini beradi. Shu tarzda siz quyidagi klasslarni solishtirishingiz mumkin. Masalan, MyObject == MyOtherObject kabi.
class MyClass:
def __eq__(self, my_object):
# Shunchaki True ni qaytaramiz

return True
my_class = MyClass()

if my_class is None:
print('my_class bu None, is kalit so\'zini ishlatdik')
else:
print('my_class bu None emas, is kalit so\'zini ishlatdik')
if my_class == None:
print('my_class bu None, == operatorini ishlatdik')
else:
print('my_class bu None emas, == operatorini ishlatdik')

Hamda biroz kutilmagan natijani olamiz:
my_class is not None, using the is keyword
my_class is None, using the == syntax

Juda ham qiziq, shunday emasmi? Aynan shu sababli None ekanligini tekshirishda is dan foydalanishni tavsiya etamiz.
Bundan tashqari ba’zi klasslar uchun __eq__ metodiga murojaat qilish ko‘proq vaqtni oladi, is esa undan tezroq bajarilganligi uchun ham afzalroq hisoblanadi.


Download 39.89 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling