一、Python的面向對象編程簡介
Python是一種面向對象編程語言,可以快速實現面向對象編程。在Python中,一切都是對象,可以通過定義類來創建新的對象。
對象是一種抽象的數據類型,它具有屬性和方法。屬性是對象的特徵,方法是對象的行為。類定義了一個對象的屬性和方法,而對象則是這個類的實例化。
Python的面向對象編程具有以下特點:
- 封裝:將數據和方法封裝在一起,對外部隱藏對象的內部實現。
- 繼承:繼承可以使子類繼承父類的屬性和方法,並且可以重寫父類的方法。
- 多態:多態指的是使用相同的方法名調用不同的對象方法,可以提高代碼的可讀性。
二、Python Class的定義和使用
在Python中,定義一個類使用關鍵字class,然後在類名稱後面跟着一個冒號,後面跟着類的方法:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"Hello, my name is {self.name}, I'm {self.age} years old.")
上面的代碼定義了一個Person類,它有兩個屬性:name和age。它還有一個方法:say_hello,用於打印出這個對象的名字和年齡。
我們可以通過使用類名創建一個新的對象實例:
p = Person("Tom", 20)
p.say_hello()
輸出結果為:
Hello, my name is Tom, I'm 20 years old.
三、Python Class的繼承和重寫
通過繼承,在不改變父類的情況下,可以在子類中添加新的方法或重寫父類的方法:
class Student(Person):
def __init__(self, name, age, school):
super().__init__(name, age)
self.school = school
def say_hello(self):
print(f"Hello, my name is {self.name}, I'm {self.age} years old. I'm studying at {self.school}.")
上面的代碼定義了一個繼承自Person類的Student類。它新增了一個屬性:school,並且重寫了父類的say_hello方法。
我們可以創建一個Student對象實例並調用其方法:
s = Student("Bob", 19, "MIT")
s.say_hello()
輸出結果為:
Hello, my name is Bob, I'm 19 years old. I'm studying at MIT.
四、Python Class的多態
在Python中,可以通過使用相同的方法名調用不同的對象方法,從而實現多態:
persons = [p, s]
for person in persons:
person.say_hello()
輸出結果為:
Hello, my name is Tom, I'm 20 years old.
Hello, my name is Bob, I'm 19 years old. I'm studying at MIT.
通過循環遍歷persons列表,我們可以調用不同對象的say_hello方法,從而實現了多態。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198249.html