Obyektga yo’naltirilgan Inkapsulatsiya


KLASSNING XUSUSIYATLARINI INKAPSULYATSIYA QILISH


Download 280.22 Kb.
bet2/3
Sana26.10.2023
Hajmi280.22 Kb.
#1722980
1   2   3
Bog'liq
Saidov Sardorbek — копия

KLASSNING XUSUSIYATLARINI INKAPSULYATSIYA QILISH

  • Klassga oid xususiyatlar ham huddi yuoqridagi kabi nomidan avval ikki pastki chiziq qo'shish bilan inkapsulyatsiya qilinadi:
  • class Avto: """Avtomobil klassi""" __
  • num_avto = 0 #
  • klassga oid xususiyat
  • def __init__(self,make,model,rang,yil,narh):
  • """Avtomobilning xususiyatlari"""
  • self.make = make
  • self.model = model
  • self.rang = rang
  • self.yil = yil
  • self.narh = narh
  • Avto.__num_avto += 1

Klassga oid metodlar

  • Klasslarning o'ziga xos metodlari ham bo'lishi mumkin. Misol uchun yuqoridagi num_avto xususiyatini ko'rish uchun alohida metod yozishimiz mumkin. Klassga oid metodlar @classmethod dekoratori bilan boshlanadi va obyektga oid metodlardan farqli ravishda self emas cls (class) argumentini qabul qiladi.
  • class Avto: """Avtomobil klassi""" __
  • num_avto = 0
  • def __init__(self,make,model,rang,yil,narh,km=0): """Avtomobilning xususiyatlari"""
  • self.make = make
  • self.model = model
  • self.rang = rang
  • self.yil = yil
  • self.narh = narh
  • self.__km = km
  • self.__id = uuid4()
  • Avto.__num_avto += 1
  • @classmethod def get_num_avto(cls):
  • return cls.__num_avto

Klass metodlari nomlari tartibi

  • Klass metodlarga klassning nomi orqali murojat qilinadi:
  • avto1 =Avto("GM","Malibu","Qora",2020,40000)
  • avto2 Avto("GM","Lacetti","Oq",2020,20000)
  • avto3 Avto("Toyota",'Carolla',"Silver",2018, 45000)print
  • (Avto.get_num_avto())

KLASSLARNI MODULGA AJRATISH

  • Vaqt o'tishi bilan dasturimizda klasslar ko'payib borishi tabiiy. Bizning asosiy dasturimiz uzun va chigal bo'lmasligi uchun klasslarni ham huddi funksiyalar kabi alohida modullarga ajratish maqsadga muvofiq bo'ladi. Dastur davomida kerak bo'ladigan klasslarga esa modulni chaqirish (import) orqali murojat qilishimiz mumkin. Bunda, bir-biriga bog'liq klasslarni bitta faylga joylashimiz mumkin.

Download 280.22 Kb.

Do'stlaringiz bilan baham:
1   2   3




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