Python logo

Python dasturlash tili: 9.1-dars.

9.1 Ob’yektga yo’naltirilgan dasturlash.

Shu paytgacha python bo’yicha darslarimizda keltirilgan dasturlar faqat funksiyalardan tashkil topgan edi. Ya’ni ma’lum bir ma’lumotlarni qayta ishlaydigan ifodalar blokidan iborat bo’ldi. Bu prosedura ko’rinishidagi dastrulash uslubi hisoblanadi. Dasturlarni tashkil qilishning boshqa ko’rinishi ham mavjud: ma’lumotlar va funksiyalarni bir ob’ekt ostiga jamlash. Bu dasturlashning ob’ektga yo’naltirilgan modeli hisoblanadi.

Klass va ob’yektlar – ob’yektga yo’naltirilgan dasturlashning ikkita asosiy aspekti. Klass yangi tur (тип) hosil qiladi, ob’ektlar esa klassning nusxasi hisoblanadi. Masalan, “int turidagi o’zgaruvchi” deganda, butun son qiymatlarni saqlovchi o’zgaruvchilar int klassining nusxasi – ob’yekti ekanligini tushunishimiz kerak.

Ob’yektlar ma’lumotlarni o’ziga tegishli bo’lgan o’zgaruvchilarda saqlaydi. Ob’ekt yoki klassga tegishli bo’lgan o’zgaruvchilar maydonlar deyiladi. Shu bilan birga ob’yektlar klasslarga tegishli bo’lgan funksiyalarni ham o’zlida jamlaydi. Bunday funksiyalar klass metodlari deb ataladi. Maydon va metodlarni umumiy qilib klass attributlari deb atash mumkin.

Maydonlar ikki turda bo’ladi: ular aloxida ob’yektga tegishli bo’lishi mumkin yoki butun bir klassga tegishlik bo’lishi mumkin. Ular o’z navbatida ob’yekt o’zgaruvchilari va klass o’zgaruvchilari deb nomlanadi.

Klasslar class kalit so’zi bilan xosil qilinadi.

  1. class Person:
  2. pass # Bo’sh blok

 

Klass ob’yekti quyidagicha xosil qilinadi.

  1. p = Person()

Ob’yekt metodlari

Misol: (method.py nomi bilan saqlang)

  1. class Person:
  2.  
  3. def sayHi(self):
  4.  
  5. print('Salom! Ishlar qanday?')
  6.  
  7.  
  8. p = Person()
  9.  
  10. p.sayHi()

Natija:

$ python3 method.py

 ‘Salom! Ishlar qanday?’

Bu qanday ishlaydi:

Klass metodlari oddiy funksiyardan parametrlari boshiga qo’shiladigan self qo’shimcha parametri bilan farqlanadi. Person klassining sayHi metodida bu narsa ko’rsatilgan. Lekin bu metodni ob’yekt orqali chaqirganimizda xech qanday qiymat bu parametr uchun berilmasligi kerak. self o’zgaruvchisi klass ob’yektiga murojat qilish uchun ishlatiladi.

 

__init__ metodi

__init__ (boshida va oxirida ikkita “_” belgisi ) metodi klass ob’yekti xosil qilinayotgan vaqtda chaqiriladi. Bu metod ob’yekt uchun kerak bo’ladigan boshlang’ich o’zlashtirishlar uchun foydali.

Misol: (class_init.py nomi bilan saqlang)

  1. class Person:
  2.  
  3. def __init__(self, name):
  4.  
  5. self.name = name
  6.  
  7. def sayHi(self):
  8.  
  9. print('Salom! Mening ismim', self.name)
  10.  
  11.  
  12. p = Person('Swaroop')
  13.  
  14. p.sayHi()

 

Natija:

$ python3 class_init.py

Salom! Mening ismim Swaroop

 

Bu qanday ishlaydi:

Bu yerda biz __init__ metodini self parametri yonida name parametrini qabul qiladigan qilib aniqladik. So’ngra name (self.name) maydonini aniqladik. Bu yerda self.name ob’yektga tegishli maydon name esa mahalliy o’zgaruvchi.

Ahamiyat berish kerakki, klass ob’yektini xosil qilishda __init__ metodini ochiq chaqirganimiz yo’q, uning o’rniga klass nomidan so’ng argumentlarni qavs ichida berdik xolos. Shu holat bilan bu metodning roli bog’liq.

Shundan so’ng biz self.name maydonini metodlarimizda ishlatish imkoniga ega bo’lamiz. Buni sayHi metodi ko’rsatib turibdi.

(164 marta o'qilgan, bugun 1 marta o'qildi)

O'xshash maqolalar: