Figuring Out Self
Class yaratganda, siz yaratilgan misollarni kuzatish uchun bir usulga muhtoj bo'lasiz.
self
ni Aniqlash
Class
yaratganda, siz yaratilgan misollarni kuzatish uchun bir usulga muhtoj bo'lasiz. Misol uchun, agar siz ikkita to'pni noyob xususiyatlar bilan yaratgan bo'lsangiz, ikkinchi to'p ob'ekti birinchi ob'ektni o'chirib yuborishini xohlamaysiz.
Python class
lari self
argumentidan qaysi misola qaysi ekanligini kuzatish uchun foydalanadi. Agar siz Java yoki Java-ga o'xshash dasturlash tilida dasturlasangiz, ular self
argumentini shunday atashadi.
Bu jarayonni amalda ko'rsangiz, tushunish osonroq:
Agar siz class
misolining o'rnini bosganingizni tezda aniqlamoqchi bo'lsangiz, misol identifikatorlari (ID) mos kelishini ko'rishingiz mumkin. Bu yerda identifikatorlar farq qilayotganini ko'rsatadi. Bu esa sizda turli ob'ektlar borligini bilishning bir usuli.
Yana bir oson usul – class
atributlariga murojaat qilish:
self
aslida misol nomi bilan almashtiriladi. Shunday qilib, bowling_ball
ushbu misol uchun self
bo'ladi, beach_ball
esa o'z misolida self
dir.
Boshqacha qilib aytganda, Python self
ni qaysi misola qaysi ekanligini kuzatish uchun ishlatadi.
Agar siz class
ga usul qo'shsangiz, bu yanada aniqroq bo'ladi. Keling, ball.py
nomli fayl yaratamiz va unga quyidagi kodni qo'shamiz:
Siz __init__()
ga yangi argument qo'shdingiz, bu esa siz yaratayotgan to'pning turini kuzatishga yordam beradi. Siz shuningdek yangi bounce()
usulini ham yaratdingiz.
Keyin siz pastki qismda g'alati ko'rinishdagi if blokiga kod yozdingiz. Agar siz python ball.py
ni ishga tushirganda kodni bajarishni xohlasangiz, bu maxsus if bloklariga joylashtirishingiz kerak:
Siz modulni bevosita ishga tushirganingizda, modul nomi __main__
ga o'rnatiladi. Modul nomini maxsus modul atributi, __name__
orqali tekshirishingiz mumkin. Ushbu maxsus sintaksis shuning uchun mavjud. Agar siz ball.py
skriptini boshqa Python skriptiga import qilsangiz, nom boshqa narsaga o'rnatiladi, chunki bu endi asosiy modul emas.
Keling, ushbu skriptni ishga tushiramiz. Terminal (yoki Windowsda cmd.exe) oching va ball.py
faylini saqlagan papkaga o'ting. Keyin quyidagi buyruqni bajaring:
Bu quyidagi natijani chiqarishi kerak:
Sizning kodingiz Python self
ni qaysi Ball
misoli qaysi ekanligini kuzatish uchun ishlatayotganini ko'rsatadi. bounce()
ni chaqirganda, siz misolning ball_type
ni self
bilan oldindan qo'shib tekshirishingiz mumkin, bu esa self.ball_type
ko'rinishida. Biroq, bounce()
usulini class
tashqarisida chaqirganda, uni misol nomi bilan chaqirasiz. Masalan, ball_one.bounce()
.
E'tibor bering, self
so'zi faqat bir an'anadir, lekin deyarli hamma joyda amal qilinadi. Bu muhim, chunki Python birinchi parametrga berilgan misolni, uning nomi self
, inst
, this
yoki xyz
bo'lishidan qat'i nazar, taqdim etadi – ya'ni, agar siz self
(yoki sizga ma'qul bo'lgan har qanday yozuv) uchun parametrni belgilashni unutib qo'ysangiz, siz g'alati xatolarga duch kelasiz.