Encapsulation ialah salah satu idea asas berorientasikan objek pengaturcaraan. Ia menyembunyikan perwakilan dan butiran pelaksanaan data di sebalik antara muka abstrak dan menyediakan kaedah akses bersatu kepada dunia luar, dengan itu mencapai kerahsiaan maklumat dan keselamatan.
Dalam Python, enkapsulasi boleh dicapai melalui penggunaan kelas dan objek. Kelas mentakrifkan sifat dan kaedah data Objek ialah contoh kelas Ia mempunyai sifat dan kaedah kelas dan boleh memanggil kaedah ini untuk memproses data. Sebagai contoh, kod berikut mentakrifkan kaedah bernama Person
的类,它包含了姓名和年龄两个属性,以及一个名为greet()
:
class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): print("Hello, my name is %s and I am %d years old." % (self.name, self.age))
Untuk mencipta kelas Person
对象,只需调用Person()
, seperti yang ditunjukkan di bawah:
person1 = Person("John", 25)
Kini, kita boleh melakukan ini melalui person1
对象访问name
和age
属性,并调用greet()
kaedah:
print(person1.name)# 输出:John print(person1.age)# 输出:25 person1.greet()# 输出:Hello, my name is John and I am 25 years old.
Kelas abstrak ialah satu lagi konsep penting dalam pengaturcaraan berorientasikan objek. Ia mentakrifkan antara muka yang mengandungi kaedah yang mesti dilaksanakan oleh kelas. Kelas abstrak tidak boleh dijadikan instantiated, tetapi ia boleh diwarisi oleh kelas lain.
Dalam Python, kelas abstrak boleh menggunakan kaedah abstrak abc
模块来定义。abc
模块提供了ABCMeta
类,它是一个元类,可以用来定义抽象类。例如,以下代码定义了一个名为Animal
的抽象类,它包含了一个名为speak()
:
from abc import ABCMeta, abstractmethod class Animal(metaclass=ABCMeta): @abstractmethod def speak(self): pass
Kaedah abstrak mesti diakhiri dengan @abstractmethod
装饰器来修饰。抽象类不能被实例化,但可以被其他类继承。例如,以下代码定义了一个名为Dog
的类,它继承自Animal
类,并实现了speak()
kaedah:
class Dog(Animal): def speak(self): print("Woof!")
Kini, kita boleh buat kaedah Dog
对象,并调用speak()
:
dog1 = Dog() dog1.speak()# 输出:Woof!
Kelas enkapsulasi dan abstrak mempunyai banyak aplikasi dalam Python, seperti:
Kelas enkapsulasi dan abstrak ialah dua konsep teras dalam pengaturcaraan berorientasikan objek. Memahami dan menguasai pengetahuan ini akan membantu anda memahami sintaks Python dengan lebih baik dan meningkatkan kualiti kod.
Atas ialah kandungan terperinci Dedahkan rahsia enkapsulasi Python dan kelas abstrak, dan kuasai intipati pengaturcaraan berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!