|
Kompyuter injiniringi” fakulteti “axborot texnologiyalari” kafedrasi
|
bet | 3/9 | Sana | 01.12.2023 | Hajmi | 398 Kb. | | #109342 |
Bog'liq Mustaqil ishlarPythonda sinf va obyektlar
Biz allaqachon muhokama qilganimizdek, sinf virtual ob'ekt bo'lib, uni ob'ektning rejasi sifatida ko'rish mumkin. Sinf paydo bo'lganida obyekt paydo bo'ldi. Keling, buni bir misol orqali tushunaylik. Aytaylik, sinf binoning prototipidir. Bino polga, eshiklarga, derazalarga va hokazolarga oid barcha ma'lumotlarni o'z ichiga oladi, biz ushbu detallarga asoslanib, xohlagancha bino yasay olamiz. Demak, binoni sinf sifatida ko'rish mumkin va biz shu sinfning shuncha ob'ektini yaratishimiz mumkin. Boshqa tomondan, ob'ekt sinfning misoli. Ob'ektni yaratish jarayonini instantatsiya deb atash mumkin. O'quv qo'llanmasining ushbu qismida biz python-da sinflar va ob'ektlarni yaratishni muhokama qilamiz. Atributga sinf ob'ekti yordamida qanday erishish mumkinligi haqida ham gaplashamiz.
Python – obyektga yo’naltirilgan dasturlash tili. Pythonda deyarli barcha narsa obyekt hisoblandi. Ularning o’z xususiyatlari va funksiyalari bor. Sinflar esa obyekt konstruktorlari hisoblanadi. Ular bilan obyektlar tuziladi.
Sinf hosil qilish
Sinf hosil qilish uchun class kalit so’zi ishlatiladi. Hozir biz Son degan sinf hosil qilamiz. Shu sinf nomini print so’zi bilan ekranga chiqarish buyrug’ini bersak, shu sinf mavjudligi haqida ma’lumot chiqadi:
class Son:
x = 5
print(Son)
Obyekt hosil qilish
Sinflar obyekt konstruktorlari ekanligini aytgan edik. Hozir yuqorida hosil qilgan sinfimiz orqali yangi obyekt hosil qilamiz. Uning nomi s1 bo’ladi.
class Son:
x = 5
s1 = Son()
print(s1.x)
Natija: 5
__init__() funksiyasi
Yuqoridagi misollarimizdagi sinf va obyektlar bilan shunchaki sodda ko’rinishda tanishib chiqdik. Ammo ular haqiqiy dasturlar tuzishga yaroqsiz. Sinflarning mohiyatini tushunish uchun __init__() ichki funksiyasini bilishimiz lozim.
Har bir sinf tuzilgan paytda __init__() funksiyasi mavjud bo’ladi. __init__() funksiyasi obyektlar tuzilayotgan paytda ularning xususiyatlariga qiymatlarni yoki bajarilishi kerak bo’lgan operatsiyalarni biriktiradi.
Hozir Ishchi degan sinf hosil qilamiz va unda ism va yosh ko’rsatkichlariga qiymatlar o’zlashtirish uchun __init__() funksiyasidan foydalanamiz.
Keyin __init__() funksiyasi har safar yangi obyekt tuzilganda avtomatik tarzda ishlaydi.
Eslatib o’tamiz, __init__() funksiyasini yozayotganda har ikkala tarafdan ham ikkitadan ( __ ) tag chiziq yoziladi.
class Ishchi:
def __init__(self, ism, yosh):
self.ism = ism
self.yosh = yosh
p1 = Ishchi ("Orzumurod", 31)
print(p1.ism) print(p1.yosh)
Obyekt funksiyalari
Obyektlar ham funksiyaga ega bo’lishi mumkin. Bu funksiyalar sinf ichida tuziladi va obyektlar tomonida ishlatiladi. Masalan, obyekt o’zini tanishtirish funksiyasini tuzamiz:
class Ishchi:
def __init__(self, ism, yosh):
self.ism = ism
self.yosh = yosh
def tanish(self):
print("Mening ismim "+ self.ism)
p1 = Ishchi ("Orzumurod ", 20)
p1.tanish()
Natija: Mening ismim Orzumurod
self parametri
self parametri sinfga tegishli o’zgaruvchilarga murojaat qila olish uchun ishlatiladi. U o’ziga xos yo’llovchi vositadir. U aynan self deb nomlanishi shart emas, boshqa nomlarni ishlatish ham mumkin. Faqat u sinfdagi istalgan funksiyaning ilk parametri sifatida yozilishi shart.
Hozir yuqoridagi misolimizdagi self parametrlarini abc deb o’zgartiramiz va natija o’zgarmaydi.
class Ishchi:
def __init__(abc, ism, yosh):
abc.ism = ism
abc.yosh = yosh
def tanish(abc):
print("Mening ismim "+ abc.ism)
p1 = Ishchi ("Orzumurod", 31)
p1.tanish()
|
| |