什么是類?
在編程語言中,類(Class)是一個用于創建對象的藍圖或模板。它定義了對象的屬性(也稱為成員變量)和方法(也稱為成員函數)。類是面向對象編程(OOP)的核心概念之一,它允許開發者創建具有相似特性和行為的對象。
類的定義中,一般包含什么?
屬性(Attributes):屬性是類中定義的數據字段,它們用于存儲對象的狀態或特征。
方法(Methods):方法是與類相關聯的函數,它們定義了對象可以執行的操作。方法通常包含一個名為 self 的參數,代表當前對象本身。
構造函數(Constructor):構造函數是一種特殊的方法,通常命名為 __init__,它在創建對象時自動被調用,用于初始化對象的狀態。
繼承(Inheritance):類可以繼承另一個類的屬性和方法,從而實現代碼的復用。子類繼承了父類的所有公有(public)和受保護(protected)成員。
多態(Polymorphism):多態允許不同類的對象對同一消息作出響應。這意味著可以編寫通用的代碼來處理不同類型的對象,而這些對象會根據其類的定義以不同的方式執行操作。
封裝(Encapsulation):封裝是類將它的數據和與數據操作相關的行為捆綁在一起的能力。這通常通過將屬性設置為私有(private)或受保護(protected)來實現,以限制對數據的直接訪問,并通過方法提供對數據的訪問和修改。
類的定義
在 Python 中,類是通過使用 class 關鍵字來定義的。類定義通常包括屬性(用于描述對象的特征)和方法(用于描述對象可以執行的操作)
class MyClass:# 類的屬性my_attribute = "這是一個屬性"# 類的方法def my_method(self, param):print(f"這是一個方法,參數是:{param}")
創建對象
一旦定義了類,就可以使用 MyClass() 語法來創建該類的實例(即對象)。
my_object = MyClass()
訪問屬性和方法
創建對象后,可以通過點(.)操作符來訪問其屬性和方法。
print(my_object.my_attribute) # 輸出:這是一個屬性
my_object.my_method("Hello") # 輸出:這是一個方法,參數是:Hello
構造函數 __init__
在類定義中,__init__ 方法是一個特殊的方法,它在創建對象時自動調用。這個方法用于初始化對象的狀態。
class MyClass:def __init__(self, param):self.my_attribute = parammy_object = MyClass("Hello")
print(my_object.my_attribute) # 輸出:Hello
繼承
Python 支持通過繼承來復用代碼。子類可以繼承父類的屬性和方法。
class ParentClass:def parent_method(self):print("這是父類的方法")class ChildClass(ParentClass):def child_method(self):print("這是子類的方法")child_object = ChildClass()
child_object.parent_method() # 輸出:這是父類的方法
child_object.child_method() # 輸出:這是子類的方法
多態
多態允許不同類的對象對同一消息作出響應。在 Python 中,多態通常通過繼承來實現。
python
class Animal:def sound(self):passclass Dog(Animal):def sound(self):return "汪汪"class Cat(Animal):def sound(self):return "喵喵"def make_sound(animal_object):return animal_object.sound()dog = Dog()
cat = Cat()print(make_sound(dog)) # 輸出:汪汪
print(make_sound(cat)) # 輸出:喵喵