在python中,類別是物件的藍圖,它定義了物件的屬性和方法,而物件是類別的實例,它具有類別的所有屬性和方法。
class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): print(f"Hello, my name is {self.name} and I am {self.age} years old.")
上例中,Person類別定義了name和age兩個屬性,以及greet方法。 Person類別的實例person具有name和age屬性,以及greet方法。
方法是類別定義的一部分,它允許物件執行某些操作。方法可以存取物件的屬性,並使用它們來執行操作。
person.greet()
上例中,person.greet()呼叫了person物件的greet方法,該方法列印了"Hello, my name is [name] and I am [age] years old."。
屬性是類別定義的一部分,它儲存物件的資料。屬性可以被方法存取和修改。
person.name = "Bob" person.age = 30
上例中,person.name被設定為"Bob",person.age被設定為30。
繼承允許一個類別從另一個類別繼承屬性和方法。派生類別可以存取和使用基底類別的所有屬性和方法。
class Student(Person): def __init__(self, name, age, grade): super().__init__(name, age) self.grade = grade def study(self): print(f"{self.name} is studying.")
上例中,Student類別從Person類別繼承了name和age屬性,以及greet方法。 Student類別也定義了一個新的屬性grade,以及一個新的方法study。
多態是指物件能夠以不同的方式回應相同的呼叫。這允許在不修改程式碼的情況下使用不同類型的物件。
def greet_person(person): person.greet() greet_person(person) greet_person(student)
上例中,greet_person()函數可以接受Person或Student物件作為參數。當調用greet_person(person)時,person.greet()被調用,打印"Hello, my name is [name] and I am [age] years old."。當調用greet_person(student)時,student.greet()被調用,打印"Hello, my name is [name] and I am [age] years old. I am in grade [grade]."。
Python中的類別和物件是程式設計中的基本概念,它們使程式設計師能夠創建具有可重複使用程式碼的對象,從而提高程式碼的可維護性和可讀性。
以上是深入剖析Python類別與物件的內部運作機制的詳細內容。更多資訊請關注PHP中文網其他相關文章!