- 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
- 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 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())
- 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.
Do'stlaringiz bilan baham: |