Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan berorientasikan objek dalam Python

Pengaturcaraan berorientasikan objek dalam Python

WBOY
WBOYasal
2023-06-10 17:19:452026semak imbas

Sebagai bahasa pengaturcaraan peringkat tinggi, Python menduduki kedudukan penting di antara banyak bahasa pengaturcaraan. Sintaksnya ringkas dan mudah dipelajari, dan ia mempunyai pelbagai perpustakaan pengaturcaraan yang berkuasa Ia digunakan secara meluas dalam pemprosesan data, pembelajaran mesin, pengaturcaraan rangkaian dan bidang lain. Perkara yang paling penting ialah Python menyokong pengaturcaraan berorientasikan objek dengan sempurna. Artikel ini akan memfokuskan pada pengaturcaraan berorientasikan objek dalam Python.

1. Konsep asas pengaturcaraan berorientasikan objek

Dalam bahasa pengaturcaraan berorientasikan objek, data dan kaedah dirangkumkan di dalam objek. Ini membolehkan objek melakukan pelbagai operasi dan pengiraan secara bebas tanpa perlu mempertimbangkan pengaruh persekitaran luaran. Dalam Python, setiap objek mempunyai sifat dan kaedahnya sendiri, dan objek boleh dibuat dengan menentukan kelas.

Kelas ialah konsep asas pengaturcaraan berorientasikan objek, yang mentakrifkan sifat dan kaedah objek. Objek ialah contoh kelas, dan objek dicipta dengan membuat seketika kelas. Dalam Python, kelas boleh ditakrifkan menggunakan kata kunci kelas, contohnya:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is", self.name, "and I am", self.age, "years old.")

Dalam kod di atas, kami mentakrifkan kelas bernama Person, yang mempunyai dua atribut (nama dan umur) dan kaedah (say_hello). Kaedah __init__ ialah fungsi pembina dalam Python yang digunakan untuk memulakan sifat sesuatu objek. diri mewakili objek itu sendiri dan merupakan parameter lalai yang perlu ditakrifkan secara eksplisit dalam senarai parameter kaedah.

2. Tiga ciri utama pengaturcaraan berorientasikan objek

  1. Encapsulation

Encapsulation ialah salah satu ciri teras pengaturcaraan berorientasikan objek menggabungkan data dan Kaedah dikapsulkan dalam kelas untuk memastikan keselamatan dan kebolehpercayaan data. Dalam Python, kami boleh menggunakan pengubah akses untuk mengawal keterlihatan sifat dan kaedah Pengubah suai ini termasuk awam, peribadi dan dilindungi.

Pengubah suai awam digunakan untuk menunjukkan bahawa semua sifat dan kaedah objek kelihatan:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is", self.name, "and I am", self.age, "years old.")

Pengubah suai peribadi digunakan untuk menunjukkan bahawa sifat dan kaedah adalah peribadi dan hanya boleh diakses dalam kelas:

class Person:
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    def say_hello(self):
        print("Hello, my name is", self.__name, "and I am", self.__age, "years old.")

Dalam kod di atas, kami telah menggunakan dua garis bawah untuk menunjukkan bahawa sifat dan kaedah adalah peribadi.

  1. Warisan

Warisan ialah satu lagi ciri teras pengaturcaraan berorientasikan objek Ia membenarkan kelas mewarisi sifat dan kaedah daripada kelas sedia ada, dengan itu melaksanakan Penggunaan Semula. Dalam Python, kita boleh menggunakan warisan untuk mencipta kelas terbitan. Kelas terbitan boleh mengatasi kaedah kelas induk dan menambah sifat dan kaedah mereka sendiri.

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def get_grade(self):
        return self.grade

    def say_hello(self):
        super().say_hello()
        print("I am a", self.grade, "student.")

Dalam kod di atas, kami mencipta kelas terbitan bernama Pelajar, yang mewarisi semua sifat dan kaedah kelas Orang, sambil menambah kaedah get_grade dan kaedah say_hello sendiri untuk mencetak gred sendiri.

  1. Polymorphism

Polymorphism ialah ciri teras ketiga pengaturcaraan berorientasikan objek, yang membolehkan objek kelas yang berbeza bertindak balas secara berbeza kepada kaedah yang sama. Dalam Python, kita boleh menggunakan kaedah overriding dan kaedah overloading untuk mencapai polimorfisme.

Penggantian kaedah bermakna kelas terbitan mengatasi kaedah kelas induk:

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def say_hello(self):
        print("Hello, my name is", self.name, "and I am a", self.grade, "student.")

Dalam kod di atas, kami mengatasi kaedah say_hello kelas Orang.

Pembebanan kaedah bermakna kelas mempunyai berbilang kaedah dengan nama yang sama, tetapi senarai parameternya berbeza:

class Calculator:
    def add(self, a, b):
        return a + b

    def add(self, a, b, c):
        return a + b + c

Dalam kod di atas, kami mentakrifkan dua kaedah tambah dengan nama yang sama, tetapi mereka Senarai parameter adalah berbeza, dan kaedah yang sepadan boleh dipanggil secara automatik mengikut bilangan parameter.

3. Contoh pengaturcaraan berorientasikan objek dalam Python

Dalam Python, pengaturcaraan berorientasikan objek boleh digunakan dalam pelbagai senario. Di bawah ini kami menggunakan contoh mudah untuk menunjukkan contoh pengaturcaraan berorientasikan objek dalam Python.

class Shape:
    def area(self):
        pass

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

class Triangle(Shape):
    def __init__(self, base, height):
        self.base = base
        self.height = height

    def area(self):
        return self.base * self.height / 2

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

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

Dalam kod di atas, kami mencipta tiga kelas terbitan Rectangle, Triangle dan Circle, yang masing-masing mewakili segi empat tepat, segi tiga dan bulatan. Setiap kelas mengatasi kaedah kawasan kelas induk untuk mengira kawasan bentuk yang berbeza.

Menggunakan kelas ini, kita boleh mencipta objek dengan bentuk yang berbeza dan mengira kawasannya:

rect = Rectangle(10, 20)
print("Rectangle area:", rect.area())

tri = Triangle(10, 20)
print("Triangle area:", tri.area())

circle = Circle(5)
print("Circle area:", circle.area())

Output:

Rectangle area: 200
Triangle area: 100.0
Circle area: 78.5

Mengikut contoh di atas, dapat dilihat bahawa dalam Pengaturcaraan berorientasikan objek Python boleh memudahkan penulisan dan pelaksanaan program, dan juga boleh meningkatkan kebolehbacaan dan kebolehselenggaraan program. Bagi peminat pengaturcaraan yang ingin mempelajari Python dengan lebih lanjut, adalah sangat perlu untuk memahami dan menguasai teknologi pengaturcaraan berorientasikan objek dalam Python.

Atas ialah kandungan terperinci Pengaturcaraan berorientasikan objek dalam Python. 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