1. Python tili imkoniyatlari Pythonni ko`chirish


None(null), yoxud NoneType tipi haqida ozroq



Yüklə 2,19 Mb.
səhifə36/78
tarix19.12.2023
ölçüsü2,19 Mb.
#152124
1   ...   32   33   34   35   36   37   38   39   ...   78
1. Python tili imkoniyatlari Pythonni ko`chirish

None(null), yoxud NoneType tipi haqida ozroq


Null kalit so`zi odatda Java, C++, C# va JavaScript kabi ko`plab dasturlash tillarida qo`llailadi. Bu biror o`zgaruvchiga o`zlashtiriladigan qiymatdir.
Null kalit so`zining ma`nosi shundan iboratki, u o`zgaruvchiga neytral(betaraf) yoki nolli holatni beradi.
Pythonda bu masalada nima gaplar?

Pythondagi null ning ekvivalenti: None.


U ikkita sababga ko`ra shunday ishlab chiqilgan:
Ko`pchilik Null so`zi yangi o`rganuvchilar uchun uncha qulay va tushunarli emasligini aytishadi. Bundan tashqri None aynan talab etilayotgan funksionallikni taqdim etadi.

my_none_variable = None

None dan foydalanish kerak bo`lgan bir qancha holatlar mavjud.


Ko`pincha siz ishlashi yoki ishlamasdan xatolikka olib kelishi mumkinbo`lgan amallarni bajarishingizga to`g`ri keladi. Nonedan doydalangan holda siz bu amalning bajarilgan yoki bajarilmaganligini aniqlashingiz mumkin. Mana, masalan:

# Biz ma`lumotlar omboriga ulanmoqchimiz.
# Biz login va parolimizning to`g`riligini bilmaymiz.
# Agar ma`lumotlar ombori bilan ulanish omadsiz bo`lsa, u holda,
# u noodatiy holatni qaytaradi. MyDatabase va DatabaseExceptionlar haqiqiy
# haqiqiy klassalar emasligiga e`tibor qarating.
# Biz ulardan shunchaki oddiy misol sifatida foydalanyapmiz
try:
database = MyDatabase(db_host, db_user, db_password, db_database)
database_connection = database.connect()
except DatabaseException:
pass
if database_connection is None:
print('The database could not connect')
else:
print('The database could connect')

Python ob`yaktga mo`ljallangan til hizoblanadi va shuning uchun ham None ham ob`yekt va o`zining tipiga ega.


None ekanlikka tekshirish


None likka tekshirishning 2 xil usuli mavjud.
Birinchi usuli bu is kalit so`zi yordamida tekshirishdir.
Ikkinchisi esa == yordamida (lekin bu usuldan foydalanish tavsiya etilmaydi va nima uchun ekanligini quyida tushuntirishga harakat qilamiz).
Ba`zi misollarni ko`rib chiqaylik:

null_variable = None
not_null_variable = 'Hello There!'
# The is keyword
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')
# The == operator
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 bular bir xil ishnibajarishayotgan ekan. Lekin, unchalik emas. Tarkibiy tiplar uchun shunday. Lekin foydalanuvchi klasslari bilan ishlaganda ehtiyot bo`lish kerak. 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 is None, using the is keyword')
else:
print('my_class is not None, using the is keyword')
if my_class == None:
print('my_class is None, using the == syntax')
else:
print('my_class is not None, using the == syntax')

Hamda bir oz 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 mana shu sababli ham None ekanligini tekshirishda is dan foydalanishni tavsiya etamiz.


Bundan tashqari ba`zi klasslar uchun __eq__ metodiga murojaat qilish ko`proq vaqtni oladi va is shunchaki undan tezroq bajarilganligi uchun ham afzalroqdir.

23-bob


Yüklə 2,19 Mb.

Dostları ilə paylaş:
1   ...   32   33   34   35   36   37   38   39   ...   78




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə