
19-ameliy Python
.pdf
19-ámeliy jumıs
Python programmalastırıw tilinde klasslar/obyektler
1. TEORIYALÍQ BÓLIM
Klass - bul obyekt jaratıw ushın arnalǵan shablon. Obyekt - bul klasstıń konkret úlgisi.
Klasstıń tiykarǵı elementleri:
1.Attributlar (qásiyetler)
2.Metodlar (funkciyalar)
3.Konstruktor (init)
Klasslar koncepciyaları:
Encapsulation (Jasırıw)
Inheritance (Miyrasxorlıq)
Polymorphism (Kóp túrlilik)
2. ÁMELIY BÓLIM
1. Tiykarǵı klass jaratıw:
class Oqıwshı:
def __init__(self, atı, jasí): self.atı = atı
self.jasí = jasí self.bahalar = []
def baha_qosıw(self, baha): self.bahalar.append(baha)
def orta_baha(self):
if len(self.bahalar) > 0:
return sum(self.bahalar) / len(self.bahalar) return 0
# Qollanıw
oqıwshı1 = Oqıwshı("Azamat", 20) oqıwshı1.baha_qosıw(5) oqıwshı1.baha_qosıw(4)
print(f"Orta baha: {oqıwshı1.orta_baha()}")
2. Miyrasxorlıq mısalı:
class Adam:
def __init__(self, atı, jasí): self.atı = atı
self.jasí = jasí
def tanıstırıw(self):
return f"Men {self.atı}, {self.jasí} jastaman"
class Student(Adam):
def __init__(self, atı, jasí, kurs): super().__init__(atı, jasí) self.kurs = kurs

def tanıstırıw(self):
return f"Men {self.atı}, {self.kurs}-kurs studentimen"
# Qollanıw
adam1 = Adam("Berdaq", 25)
student1 = Student("Gúlnara", 19, 2)
print(adam1.tanıstırıw()) print(student1.tanıstırıw())
3. Encapsulation mısalı:
class Bank_schet:
def __init__(self, iyesi, balans): self.__iyesi = iyesi # private attribute self.__balans = balans
def balans_kóriw(self): return self.__balans
def aqsha_salıw(self, summa): if summa > 0:
self.__balans += summa return True
return False
def aqsha_alıw(self, summa): if summa <= self.__balans:
self.__balans -= summa return True
return False
# Qollanıw
schet = Bank_schet("Alisher", 1000000) schet.aqsha_salıw(500000)
print(f"Házirgi balans: {schet.balans_kóriw()}")
4. Kóp túrlilik (Polymorphism) mısalı:
class Figura:
def maydan(self): pass
class Tórtmúyesh(Figura):
def __init__(self, a, b): self.a = a
self.b = b
def maydan(self):
return self.a * self.b
class Úshmúyesh(Figura):
def __init__(self, a, h): self.a = a
self.h = h
def maydan(self):
return 0.5 * self.a * self.h
# Qollanıw
tort = Tórtmúyesh(5, 4)

ush = Úshmúyesh(6, 3)
print(f"Tórtmúyesh maydanı: {tort.maydan()}") print(f"Úshmúyesh maydanı: {ush.maydan()}")
5. Property dekoratorlar menen islew:
class Temperature:
def __init__(self, celsius): self._celsius = celsius
@property
def celsius(self): return self._celsius
@celsius.setter
def celsius(self, value): if value < -273.15:
raise ValueError("Temperature cannot be below absolute zero") self._celsius = value
@property
def fahrenheit(self):
return self._celsius * 9/5 + 32
# Qollanıw
temp = Temperature(25) print(f"Celsius: {temp.celsius}")
print(f"Fahrenheit: {temp.fahrenheit}") temp.celsius = 30
print(f"Jańa temperatura: {temp.celsius}°C")
6. Statikalıq metodlar:
class Calculator: @staticmethod def qosıw(a, b):
return a + b
@staticmethod def alıw(a, b):
return a - b
@staticmethod
def kóbeytiw(a, b): return a * b
@staticmethod def bóliw(a, b):
if b != 0: return a / b
return "Nolge bóliw múmkin emes"
# Qollanıw print(Calculator.qosıw(5, 3)) print(Calculator.kóbeytiw(4, 2))
Keliń, hár bir kodtı bólip-bólip túsindirip shıǵayıq:
1. OQÍWSHÍ KLASÍ:

class Oqıwshı: |
|
|
|
def |
__init__(self, atı, jasí): |
|
|
|
self.atı = atı |
# oqıwshınıń atı |
|
|
self.jasí = jasí |
# oqıwshınıń jası |
|
|
self.bahalar = [] |
# bahalar dizimi |
|
def |
baha_qosıw(self, baha): |
|
|
|
self.bahalar.append(baha) |
# jańa baha qosıw |
|
def |
orta_baha(self): |
|
|
|
if len(self.bahalar) > 0: |
|
|
|
return sum(self.bahalar) / len(self.bahalar) # orta bahanı |
||
esaplaw |
|
|
|
|
return 0 |
|
|
# Qollanıw mısalı |
|
|
|
|
|
||
oqıwshı1 = Oqıwshı("Azamat", 20) |
# jańa oqıwshı jaratıw |
||
oqıwshı1.baha_qosıw(5) |
|
# bahalar qosıw |
|
oqıwshı1.baha_qosıw(4) |
|
|
Bul klasstıń:
Konstruktorı (init) - oqıwshınıń atı hám jasın saqlaydı
baha_qosıw() - jańa baha qosadı
orta_baha() - barlıq bahalardıń orta arifmetikalıq mánisin esaplaydı
2. MIYRASXORLÍQ MÍSALI:
class Adam:
def __init__(self, atı, jasí): self.atı = atı
self.jasí = jasí
def tanıstırıw(self):
return f"Men {self.atı}, {self.jasí} jastaman"
class Student(Adam): # Adam klassınan miyras aladı def __init__(self, atı, jası, kurs):
super().__init__(atı, jası) # ata-klass konstruktorın shaqırıw self.kurs = kurs
def tanıstırıw(self): # metodtı qayta jazıw (override) return f"Men {self.atı}, {self.kurs}-kurs studentimen"
Bul mısalda:
Adam - tiykarǵı klass (ata-klass)
Student - Adam klassınan miyras alǵan klass (bala-klass)
super().init() - ata-klass konstruktorın shaqırıw ushın qollanıladı
3. ENCAPSULATION (JASIRIW) MÍSALI:
class Bank_schet:
def |
__init__(self, |
iyesi, balans): |
||
|
self.__iyesi = |
iyesi |
# |
private attribute (__) |
|
self.__balans = balans |
# |
private attribute |
|
def |
balans_kóriw(self): |
|
|
|
|
return self.__balans |
|
|

def aqsha_salıw(self, summa): if summa > 0:
self.__balans += summa return True
return False
Bul mısalda:
__ belgisi menen baslanǵan attributlar private boladı
Tek klasstıń metodları arqalı ǵana private attributlarǵa kiriwge boladı
Bul maǵlıwmatlardı jasırıw hám qorǵaw ushın qollanıladı
4. POLYMORPHISM (KÓP TÚRLILIK) MÍSALI:
class Figura:
def maydan(self): pass
class Tórtmúyesh(Figura): def maydan(self):
return self.a * self.b
class Úshmúyesh(Figura): def maydan(self):
return 0.5 * self.a * self.h
Bul mısalda:
Hár bir klass maydan() metodın óz jolı menen ámelge asıradı
Bir metod hár qıylı klasslar ushın hár qıylı isleydi
5. PROPERTY DEKORATORLAR:
class Temperature: @property
def celsius(self): return self._celsius
@celsius.setter
def celsius(self, value): if value < -273.15:
raise ValueError("Temperature cannot be below absolute zero") self._celsius = value
Property dekoratorlar:
@property - attributqa oqıw múmkinshiligin beredi
@celsius.setter - attributqa jazıw múmkinshiligin beredi
Attributtı validaciya qılıwǵa járdem beredi
6. STATIKALÍQ METODLAR:
class Calculator: @staticmethod def qosıw(a, b):
return a + b

Statikalıq metodlar:
Klasstıń instanciyasın jaratpay turíp shaqırıw múmkin
self parametri talap etilmeydi
Klass attributlarına tikkeley kire almadı
ÁMELIY MÍSALLAR:
1. Kitapxana sisteması:
class Kitap:
def __init__(self, atı, avtor, jılı): self.atı = atı
self.avtor = avtor self.jılı = jılı
self.bar = True # kitap kitapxanada bar ma?
def maǵlıwmat(self):
status = "bar" if self.bar else "alınǵan"
return f"'{self.atı}' - {self.avtor} ({self.jılı}) - {status}"
class Oqıwshı:
def __init__(self, atı, id): self.atı = atı
self.id = id self.alǵan_kitaplar = []
def kitap_alıw(self, kitap): if kitap.bar:
self.alǵan_kitaplar.append(kitap) kitap.bar = False
return f"{self.atı} '{kitap.atı}' kitabın aldı" return "Kitap házirde joq"
def kitap_qaytarıw(self, kitap):
if kitap in self.alǵan_kitaplar: self.alǵan_kitaplar.remove(kitap) kitap.bar = True
return f"{self.atı} '{kitap.atı}' kitabın qaytardı" return "Bul kitap sizde joq"
# Qollanıw
kitap1 = Kitap("Alpamıs", "Xalıq dástanı", 1999)
kitap2 = Kitap("Qaraqalpaq folklori", "Q.Ayımbetov", 2018)
oqıwshı1 = Oqıwshı("Arıslan", "ID001") oqıwshı2 = Oqıwshı("Gúlnara", "ID002")
print(kitap1.maǵlıwmat()) print(oqıwshı1.kitap_alıw(kitap1)) print(kitap1.maǵlıwmat()) print(oqıwshı1.kitap_qaytarıw(kitap1))
2. Bank esap sisteması:
class Bank_schet:
def __init__(self, iyesi, schet_nomeri): self.__iyesi = iyesi self.__schet_nomeri = schet_nomeri self.__balans = 0
self.__transport = []

def aqsha_salıw(self, summa): if summa > 0:
self.__balans += summa
return f"{summa} sum qosıldı. Jańa balans: {self.__balans}" return "Nadurıs summa"
def aqsha_alıw(self, summa):
if 0 < summa <= self.__balans: self.__balans -= summa
return f"{summa} sum alındı. Qalǵan balans: {self.__balans}" return "Balans jetkilisiz"
def transport_qosıw(self, transport_túri): self.__transport.append(transport_túri) return f"{transport_túri} qosıldı"
def balans_kóriw(self):
return f"Házirgi balans: {self.__balans} sum"
def transportlar(self):
return f"Sizde {len(self.__transport)} transport bar: {', '.join(self.__transport)}"
# Qollanıw
schet1 = Bank_schet("Alisher", "1234567890") print(schet1.aqsha_salıw(1000000)) print(schet1.aqsha_alıw(500000)) print(schet1.transport_qosıw("Nexia-3")) print(schet1.transport_qosıw("Damas")) print(schet1.transportlar())
3. Onlayn dúkan:
class Ónim:
def __init__(self, atı, baǵası, sanı): self.atı = atı
self.baǵası = baǵası self.sanı = sanı
def maǵlıwmat(self):
return f"{self.atı} - {self.baǵası} sum ({self.sanı} dana bar)"
class Sebet:
def __init__(self): self.ónimler = {} self.ulıwma_baǵa = 0
def ónim_qosıw(self, ónim, sanı): if ónim.sanı >= sanı:
if ónim in self.ónimler: self.ónimler[ónim] += sanı
else:
self.ónimler[ónim] = sanı ónim.sanı -= sanı
self.ulıwma_baǵa += ónim.baǵası * sanı
return f"{sanı} dana {ónim.atı} sebetke qosıldı" return "Ónim jetkilisiz"
def sebetti_kóriw(self): text = "Sebette:\n"
for ónim, sanı in self.ónimler.items():
text += f"{ónim.atı} - {sanı} dana = {ónim.baǵası * sanı} sum\n"

text += f"\nUlıwma baǵa: {self.ulıwma_baǵa} sum" return text
# Qollanıw
alma = Ónim("Alma", 15000, 100) nok = Ónim("Nok", 20000, 50) banan = Ónim("Banan", 25000, 30)
sebetim = Sebet() print(sebetim.ónim_qosıw(alma, 5)) print(sebetim.ónim_qosıw(nok, 3)) print(sebetim.ónim_qosıw(banan, 2)) print(sebetim.sebetti_kóriw())
TEST
1.Klass nege arnalǵan? a) Maǵlıwmatlardı saqlaw ushın b) Obyekt jaratıw ushın arnalǵan shablon c) Funkciyalardı saqlaw ushın d) Tek metodlardı saqlaw ushın
2.Klasstıń tiykarǵı elementlerin kórsetiń: a) Tek metodlar b) Tek konstruktor c) Attributlar, metodlar hám konstruktor d) Tek attributlar
3.Private attributtı qanday belgi menen belgilemiz? a) _ b) __ c) # d) $
4.Property dekoratorlardıń tiykarǵı wazıypası qanday? a) Klassqa jańa metod qosıw b) Attributqa oqıw hám jazıw múmkinshiligin basqarıw c) Klassqa jańa attribut qosıw d) Klasstı qayta ataw
5.Statikalıq metodtıń ózgesheligi nede? a) Klasstıń instanciyasın jaratıwdı talap etedi b) self parametrin talap etedi c) Klasstıń instanciyasın jaratpay turıp shaqırıw múmkin d) Tek bir márte shaqırıw múmkin
6.Miyrasxorlıqta super() funkciyası ne ushın qollanıladı? a) Jańa klass jaratıw ushın b) Ataklass konstruktorın shaqırıw ushın c) Metodtı óshiriw ushın d) Attributtı óshiriw ushın
7.Polymorphism (kóp túrlilik) degenimiz ne? a) Bir metodtıń hár qıylı klasslarda hár qıylı islewi b) Bir klassqa kóp attribut qosıw c) Bir klasstıń bir neshe instanciyasın jaratıw d) Bir neshe klasstı birlestiriw
8.self parametri neni bildiredi? a) Klasstıń atın b) Házirgı instanciyanı c) Klasstıń metodın d) Klasstıń attributın
9.Konstruktordıń wazıypası qanday? a) Klasstı óshiriw b) Klassqa metod qosıw c) Obyekttiń dáslepki qásiyetlerin belgilew d) Klasstıń atın ózgertiw
10.Encapsulation (jasırıw) principiniń tiykarǵı maqseti ne? a) Maǵlıwmatlardı jasırıw hám qorǵaw b) Maǵlıwmatlardı kóshiriw c) Maǵlıwmatlardı joq etiw d) Maǵlıwmatlardı kóbeytiw
Durıs juwaplar: 1-b, 2-c, 3-b, 4-b, 5-c, 6-b, 7-a, 8-b, 9-c, 10-a