Rumah >pembangunan bahagian belakang >Tutorial Python >Mari selami lebih mendalam prinsip dan konsep **Pengaturcaraan Berorientasikan Objek (OOP)** Python, dengan contoh sebenar

Mari selami lebih mendalam prinsip dan konsep **Pengaturcaraan Berorientasikan Objek (OOP)** Python, dengan contoh sebenar

Linda Hamilton
Linda Hamiltonasal
2024-11-16 19:31:03243semak imbas

Let

1. Kelas dan Objek: Rangka Tindakan dan Blok Bangunan Anda

  • Kelas: Fikirkan kelas sebagai rangka tindakan untuk objek. Ia mentakrifkan sifat (atribut) dan tindakan (kaedah) yang akan ada pada objek berdasarkannya.
  • Objek: Contoh kelas yang anda buat dan berinteraksi dengannya.

Contoh:

class Dog:
    # The constructor method
    def __init__(self, name, breed):
        self.name = name  # Attribute
        self.breed = breed

    # Method (function in the class)
    def bark(self):
        print(f"{self.name} says woof!")

# Creating an object of the Dog class
dog1 = Dog("Buddy", "Golden Retriever")
dog1.bark()  # Output: Buddy says woof!

Di sini, Dog ialah kelas (cetak biru) dan dog1 ialah objek yang dicipta daripada pelan tindakan ini.


2. Enkapsulasi: Menyembunyikan Butiran Dalaman

Encapsulation ialah tentang memastikan data selamat dan hanya membenarkan interaksi dengannya melalui kaedah terkawal. Dengan menggunakan atribut peribadi (diawali dengan _ atau __), kami memastikan ia tidak boleh diakses secara langsung.

Contoh:

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # Private attribute

    def deposit(self, amount):
        self.__balance += amount

    def get_balance(self):
        return self.__balance

account = BankAccount(100)
account.deposit(50)
print(account.get_balance())  # Output: 150

__baki adalah peribadi, jadi kami berinteraksi dengannya hanya melalui kaedah deposit() dan get_balance().


3. Pewarisan: Mewariskan Sifat

Warisan membenarkan kelas (anak) memperoleh atribut dan kaedah daripada kelas lain (ibu bapa), mendayakan penggunaan semula kod dan mencipta hierarki semula jadi.

Contoh:

class Animal:
    def __init__(self, name):
        self.name = name

    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        return "Woof!"

class Cat(Animal):
    def make_sound(self):
        return "Meow!"

dog = Dog("Buddy")
cat = Cat("Whiskers")
print(dog.make_sound())  # Output: Woof!
print(cat.make_sound())  # Output: Meow!

Di sini, Anjing dan Kucing mewarisi daripada Haiwan, bermakna mereka boleh berkongsi sifat dan gelagat yang sama tetapi juga mempunyai gelagat unik melalui penggantian kaedah.


4. Polimorfisme: Satu Antara Muka, Pelbagai Bentuk

Polymorphism membenarkan kaedah untuk melakukan secara berbeza bergantung pada objek yang memanggilnya. Ini berguna dalam kes seperti kaedah mengatasi dalam kelas kanak-kanak, di mana setiap subkelas boleh melaksanakan tingkah laku dengan cara tersendiri.

Contoh:

class Shape:
    def area(self):
        pass

class Square(Shape):
    def __init__(self, side):
        self.side = side

    def area(self):
        return self.side * self.side

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius * self.radius

shapes = [Square(4), Circle(3)]
for shape in shapes:
    print(shape.area())

Setiap bentuk mengira luasnya secara berbeza, walaupun mereka berkongsi nama kaedah yang sama, kawasan(). Ini adalah polimorfisme dalam tindakan.


5. Abstraksi: Memudahkan Realiti Kompleks

Abstraksi memfokuskan pada hanya menunjukkan ciri penting dan menyembunyikan butiran kompleks. Ia selalunya dicapai menggunakan kelas abstrak atau antara muka (menggunakan modul abc dalam Python).

Contoh:

from abc import ABC, abstractmethod

class Vehicle(ABC):
    @abstractmethod
    def start_engine(self):
        pass

class Car(Vehicle):
    def start_engine(self):
        return "Car engine started!"

class Motorcycle(Vehicle):
    def start_engine(self):
        return "Motorcycle engine started!"

car = Car()
motorcycle = Motorcycle()
print(car.start_engine())        # Output: Car engine started!
print(motorcycle.start_engine())  # Output: Motorcycle engine started!

Di sini, Kenderaan ialah kelas abstrak yang mentakrifkan enjin_mula tetapi tidak melaksanakannya. Kelas Kereta dan Motosikal menyediakan pelaksanaan khusus, membolehkan kami menumpukan pada tingkah laku yang berkaitan dengan setiap jenis kenderaan sahaja.


Menyatukan Semuanya: OOP Superpowers Unlocked

Dengan menguasai prinsip OOP ini—pengkapsulan, pewarisan, polimorfisme dan abstraksi—anda bukan sekadar menulis kod; anda sedang mereka bentuk keseluruhan sistem dengan struktur, kejelasan dan kecekapan.

Selamat datang ke kelab 'arkitek keren' Python. ??"

Atas ialah kandungan terperinci Mari selami lebih mendalam prinsip dan konsep **Pengaturcaraan Berorientasikan Objek (OOP)** Python, dengan contoh sebenar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn