15-Mavzu: Sinflar va obyektlar bilan ishlash Reja obyekt nima?


Download 52.67 Kb.
bet4/6
Sana22.06.2023
Hajmi52.67 Kb.
#1650468
1   2   3   4   5   6
Bog'liq
15 Sinflar va obyektlar bilan ishlash

PYTHONDAGI KLASSLAR
Klass tushunchasi siz uchun yangi bo'lishi mumkin, lekin biz shu vaqtgacha ulardan doimiy ravishda foydalanib keldik.
Keling x o'zgaruvchi yaratamiz, unga biror qiymat yuklaymiz va type() funksiyasi yordamida uning turini kuramiz:
x = 10
print(type(x))
Natija:
matn = "salom"
print(type(matn))
Natija:
Yuqoridan ko'rayabmizki, x bu int klassidagi, matn esa str klassidagi obyektlar ekan. Demak biz o'zgaruvchi yaratganimizda, aslida Python int yoki str klassidan foydalangan holda yangi obyektlar yaratib kelayotgan ekan.
Huddi shu kabi, agar yangi funksiya yaratib, uning ham turini tekshirsak, funksiyamiz function klassiga tegishli obyekt bo'lib chiqadi.
def salom_ber():
print("Assalom alaykum")
print(type(salom_ber))
Natija:
Demak, Pythondagi har qanday o'zgaruvchi, funksiya va boshqa elementlar aslida obyektlar ekan.
METODLAR
Har bir obyekt uning ustida bajarish mumkin bo'lgan funksiyalar bilan keladi. Bu funksiyalar obyekt ichida yashirin bo'ladi, va biz ularga nuqta va funksiya nomi orqali murojat qilishimiz mumkin. Bunday funksiyalar shu klass (yoki obyektga) tegishli metodlar deyiladi.
Biz ba'zi metodlar bilan avvalgi darslarimizda tanishdik. Bir klassga tegishli metodlar, boshqa klassdagi obyketlar uchun mavjud bo'lmasligi tabiiy. Misol uchun matnlar uchun mavjud metodlarni, butun yoki o'nli sonlarga qo'llab bo'lmaydi.
matn = "salom"
print(matn.upper())
Natija: SALOM
son = 20
print(son.lower())
Natija: AttributeError: 'int' object has no attribute 'lower'
Keling endi o'zimizning klasslarimizni yaratishni ko'ramiz.
KLASS YARATISH
Yangi klass yaratish uchun class operatoridan foydalanamiz va klassimizga tushunarli nom beramiz. Esingizda bo'lsin, klass bu hali obyekt emas, bu obyekt uchun shablon. Shuning uchun klass yaratishda shu klassdagi obyektlar uchun umumiy bo'lgan xususiyatlar va funksiyalarni o'ylashimiz kerak.
Keling, Talaba degan klass yaratamiz:
class Talaba:
"""Talaba nomli klass yaratamiz"""
def __init__(self,ism,familiya,tyil):
"""Talabaning xususiyatlari"""
self.ism = ism
self.familiya = familiya
self.tyil = tyil
Kodimizni tahlil qilamiz:

  • class Talaba — Talaba nomli klass yaratdik. Klasslarga nom berishda uning birinchi harfini katta harfdan boshlash tavsiya qilinadi. Agar klass nomi 2 va undan ko'p so'zdan iborat bo'lsa har bir so'zni katta harf bilan boshlang.

  • def __init__(self) — klassga tegishli xususiyatlarni saqlovchi maxsus metod (funksiya). self kalit so'zi ingliz tilidan "o'zi" deb tarjima qilinadi, va bu klassdan yaratilgan obyektning o'ziga ishora qiladi. Ya'ni keyinchalik biz obyekt ichidagi metodga murojat qilganimizda shu obyektning o'zi birinchi bo'lib funksiyaga argument sifatida uzatiladi, obyket ustida turli amallar bajarish imkonin beradi

  • def __init__(self,ism,familiya,tyil) — yaratayotgan klassimizga xos xususiyatlarni def __init__(self) funksiyasiga argument sifatida uzatamiz. Bizning Talaba klassimiz ism, familiya va tug'ilgan yilga ega bo'ladi.

  • Keyingi qatorlarda esa self.xususiyat = argument komandasi yordamida uzatilgan argumentlarni klassning xususiyatlari bilan bo'glayapmiz. Bu yerda xususiyat nomi uzatilgan argument nomi bilan mos tushishi shart emas, unga istalgan nom berishimiz mumkin (masalan self.name = ism)


Download 52.67 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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