類別是物件導向程式設計的基礎單位,它定義了物件的結構和行為。在python中,使用class關鍵字定義類,類別名稱要以大寫字母開頭。例如:
class Person: def __init__(self, name, age): self.name = name self.age = age
上面的程式碼定義了一個Person類,它有兩個屬性:name和age。其中init()方法是類別的建構方法,它在建立物件時會被自動調用,用於初始化物件的屬性。
物件是類別的具體化,它擁有類別的屬性和方法。可以透過類別名稱加上括號來建立對象,例如:
person = Person("John", 30)
上面的程式碼建立了一個Person類別的對象,並將其賦值給變數person。現在person物件擁有了name和age屬性,我們可以透過點運算子存取它們:
print(person.name)# 输出:John print(person.age)# 输出:30
類別可以擁有屬性和方法。屬性是類別的變量,它儲存著物件的狀態。方法是類別的函數,它可以操作物件的狀態。例如,我們可以為Person類別新增一個方法來取得物件的年齡:
class Person: def __init__(self, name, age): self.name = name self.age = age def get_age(self): return self.age
現在我們可以透過person.get_age()來取得物件的年齡:
print(person.get_age())# 输出:30
繼承是物件導向程式設計中最重要的概念之一。它允許一個類別從另一個類別繼承屬性和方法。例如,我們可以建立一個Student類,它繼承自Person類別:
class Student(Person): def __init__(self, name, age, major): super().__init__(name, age) self.major = major
上面的程式碼建立了一個Student類,它繼承自Person類別。 Student類別擁有Person類別的所有屬性和方法,它也新增了一個新的屬性major。
多型是物件導向程式設計中另一個重要的概念。它允許物件以不同的方式回應相同的訊息。例如,如果我們有一個Animal類,它可以有不同的子類,如Cat、Dog和Bird。這些子類別都繼承了Animal類別的屬性和方法,但它們可以以不同的方式回應相同的行為。例如,我們可以呼叫Animal類別的make_sound()方法,但Cat、Dog和Bird子類別會以不同的方式實作這個方法:
class Animal: def make_sound(self): pass class Cat(Animal): def make_sound(self): print("Meow!") class Dog(Animal): def make_sound(self): print("Woof!") class Bird(Animal): def make_sound(self): print("Chirp!") def make_animals_sound(animals): for animal in animals: animal.make_sound() animals = [Cat(), Dog(), Bird()] make_animals_sound(animals)
上面的程式碼定義了一個Animal類,它有一個make_sound()方法。 Cat、Dog和Bird類別繼承自Animal類,它們都實作了make_sound()方法。 make_animals_sound()函數接受一個動物列表作為參數,並呼叫各個動物的make_sound()方法。當呼叫make_animals_sound()函數時,Cat、Dog和Bird物件會以不同的方式回應make_sound()方法,從而實現多態。
以上是揭秘Python類與物件背後的奧秘,幫助你輕鬆掌握物件導向編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!