在 Python 中,類是一種抽象數據類型,用于描述具有相同屬性和方法的對象集合。類通過屬性(變量)和方法(函數)來定義對象的行為。對象是類的實例化結果,它可以具備類定義的所有特性。Python 中的類和對象提供了一種靈活且強大的方式來組織和管理代碼,支持面向對象編程的核心思想。
Python 類的基礎概念
在 Python 中,定義類使用關鍵字 class
,后跟類名,通常采用駝峰命名法。類包含了對象的屬性和方法的定義,是對象的模板或藍圖。
類的定義與實例化
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):print(f"{self.name} says Woof!")
上述代碼定義了一個 Dog
類,包括初始化方法 __init__
和方法 bark
。通過實例化可以創建具體的對象:
my_dog = Dog("Buddy", 3)
my_dog.bark() # 輸出:Buddy says Woof!
類的繼承與多態
Python 支持繼承,子類可以從父類繼承屬性和方法,并且可以重寫父類的方法以實現多態。
繼承與方法重寫
class Labrador(Dog):def __init__(self, name, age, color):super().__init__(name, age)self.color = colordef bark(self):print(f"{self.name} the {self.color} Labrador says Woof!")my_labrador = Labrador("Tommy", 5, "Golden")
my_labrador.bark() # 輸出:Tommy the Golden Labrador says Woof!
類的特殊方法與屬性
Python 中的類有一些特殊方法(如 __init__
、__str__
等),可以重載以定制類的行為。
特殊方法舉例
class Car:def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yeardef __str__(self):return f"{self.year} {self.make} {self.model}"my_car = Car("Toyota", "Corolla", 2023)
print(my_car) # 輸出:2023 Toyota Corolla
類的靜態方法與類方法
除了實例方法外,Python 還支持靜態方法和類方法。
靜態方法與類方法示例
class MathUtils:@staticmethoddef add(x, y):return x + y@classmethoddef multiply(cls, x, y):return x * yprint(MathUtils.add(3, 5)) # 輸出:8
print(MathUtils.multiply(3, 5)) # 輸出:15