Repetition

Classlar bo'yicha barini takrorlash.

SU

Python Classlar to'liq takrorlash.

1. Classni Yaratish

Python'da class yaratish uchun class kalit so'zidan foydalanamiz. Classlar dasturlashda obyektlarni yaratishga imkon beradi.

Misol: Oddiy Class Yaratish

class Dog:
    """It classini yaratish."""
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age
 
    def bark(self):
        """Itning havlamoq funksiyasi."""
        print(f"{self.name} havlaydi!")

Obyekt yaratish

my_dog = Dog("Buddy", 3)
my_dog.bark()  # Natija: Buddy havlaydi!

2. Initializer (Konstruktor)

Classda yangi obyekt yaratganda, __init__ metodi chaqiriladi. Bu metod, obyektni yaratishda atributlarni belgilash uchun ishlatiladi.

Misol: Initializer Qo'shish

class Cat:
    def __init__(self, name: str, color: str):
        self.name = name
        self.color = color
 
    def meow(self):
        print(f"{self.name} mayiqlaydi!")

Obyekt yaratish

my_cat = Cat("Whiskers", "qora")
my_cat.meow()  # Natija: Whiskers mayiqlaydi!

3. self Kalit So'zi

self - bu obyektning o'ziga xosligini saqlash uchun ishlatiladigan kalit so'z. Bu orqali biz metodlar ichida atributlarga murojaat qilishimiz mumkin.

Misol: self Misoli

class Circle:
    def __init__(self, radius: float):
        self.radius = radius
 
    def area(self):
        """Doiraning yuzasini hisoblash."""
        return 3.14 * (self.radius ** 2)
 
circle = Circle(5)
print(circle.area())  # Natija: 78.5

4. O'zgartirish (Overriding)

Subclass (qoidalar) otasi (parent) metodi bilan bir xil nomga ega bo'lsa, subclassning o'ziga xos metodidan foydalaniladi. Bu o'zgarish "overriding" deb ataladi.

Misol: Overriding

class Vehicle:
    def start(self):
        print("Transport harakatlanmoqda!")
 
class Car(Vehicle):
    def start(self):
        print("Avtomobil ishga tushdi!")
 
car = Car()
car.start()  # Natija: Avtomobil ishga tushdi!

5. Subclasslar (Qoidalar)

Subclass - bu boshqa classdan (ota class) atributlar va metodlarni meros qilib oladigan yangi class. Subclasslar, shuningdek, ota classning metodlarini o'zgartirishi mumkin.

Misol: Subclass Yaratish

class Animal:
    def sound(self):
        print("Hayvon ovoz chiqaradi")
 
class Dog(Animal):
    def sound(self):
        print("It havlaydi")
 
class Cat(Animal):
    def sound(self):
        print("Mushuk mayiqlaydi")
 
animals = [Dog(), Cat()]
for animal in animals:
    animal.sound()
# Natija:
# It havlaydi
# Mushuk mayiqlaydi

6. Polimorfizm

Polimorfizm - bu turli classlar bir xil interfeysga ega bo'lishini ta'minlaydi. Bu orqali siz turli ob'ektlarga bir xil metodlarni qo'llashingiz mumkin.

Misol: Polimorfizm Misoli

def make_sound(animal: Animal):
    animal.sound()
 
make_sound(Dog())  # Natija: It havlaydi
make_sound(Cat())  # Natija: Mushuk mayiqlaydi

7. Maxfiy (Private) va Jamoat (Public) Atributlar

Python'da maxfiy atributlar (o'zgartirishlar) oldidan bitta yoki ikkita pastki chiziq (_ yoki __) qo'shish orqali belgilanishi mumkin. Bu kodni yaxshiroq tushunish va boshqa dasturchilar uchun ko'rsatma beradi.

Misol: Maxfiy Atributlar

class BankAccount:
    def __init__(self, balance: float):
        self.__balance = balance  # Maxfiy atribut
 
    def deposit(self, amount: float):
        self.__balance += amount
 
    def get_balance(self):
        return self.__balance
 
account = BankAccount(1000)
account.deposit(500)
print(account.get_balance())  # Natija: 1500
# print(account.__balance)  # Bu xatoga olib keladi

8. Sehrli Metodlar (Magic Methods)

Python'da ba'zi metodlar __ (ikki pastki chiziq) bilan boshlanadi va tugaydi. Ular "sehrli metodlar" deb ataladi va ob'ektning harakatlarini belgilashda yordam beradi, masalan, __str__() va __repr__() metodlari.

Misol: Sehrli Metodlar

class Ball:
    def __init__(self, color: str):
        self.color = color
 
    def __repr__(self):
        return f"<Ball: {self.color}>"
 
    def __str__(self):
        return f"{self.color} ball"
 
ball = Ball("qizil")
print(ball)  # Natija: qizil ball
print(repr(ball))  # Natija: <Ball: qizil>

9. Dokumentatsiya va Izohlar

Yaxshi hujjat yozish va kodda izohlar berish juda muhimdir. Docstringlar (hujjatli qatorlar) yordamida metodlar va classlar haqida ma'lumot berishingiz mumkin.

Misol: Dokumentatsiya

class Calculator:
    """Calculator class to perform basic arithmetic operations."""
 
    def add(self, a: float, b: float) -> float:
        """Returns the sum of two numbers."""
        return a + b
 
calc = Calculator()
print(calc.add(5, 3))  # Natija: 8

Xulosa

Python'da classlar sizga dasturlashni tashkil qilish va ob'ektlarga asoslangan yondashuvlarni amalga oshirish imkonini beradi. OOP kontseptsiyalarini o'rganish orqali siz kodlaringizni samaraliroq va o'qilishi osonroq qilishingiz mumkin.

Last updated on