Python 是一種面向對象的編程語言,它支持類和對象。類是一種用戶自定義的數(shù)據(jù)類型,用于定義對象的屬性和方法。對象是類的實例,它包含類的屬性和方法的實際值。
定義類
定義類的語法如下:
classClassName: def__init__(self,arg1,arg2,...): self.attribute1=arg1 self.attribute2=arg2 ... defmethod1(self,arg1,arg2,...): #methodbody defmethod2(self,arg1,arg2,...): #methodbody
在上面的代碼中,__init__() 方法是類的構造函數(shù),它在創(chuàng)建對象時調(diào)用。self 參數(shù)是一個指向當前對象的引用,它用于訪問對象的屬性和方法。
創(chuàng)建對象
要創(chuàng)建一個對象,我們必須使用類的名稱和構造函數(shù)的參數(shù)。例如:
classPerson: def__init__(self,name,age): self.name=name self.age=age person1=Person("John",25)
在上面的代碼中,我們定義了一個名為 Person 的類,并創(chuàng)建了一個名為 person1 的對象。這個對象有兩個屬性:name 和 age。
訪問屬性和方法
要訪問對象的屬性和方法,我們可以使用點操作符(.)。
print(person1.name) print(person1.age)
在上面的代碼中,我們訪問了 person1 對象的 name 和 age 屬性。
要調(diào)用對象的方法,我們可以使用點操作符和方法名。
classPerson:
def__init__(self,name,age):
self.name=name
self.age=age
defsay_hello(self):
print("Hello,mynameis",self.name)
person1=Person("John",25)
person1.say_hello()
在上面的代碼中,我們定義了一個名為 say_hello() 的方法,并在 person1 對象上調(diào)用它。
繼承
Python 支持繼承,它允許我們定義一個類來繼承另一個類的屬性和方法。
classAnimal: def__init__(self,name): self.name=name defspeak(self): pass classDog(Animal): defspeak(self): print("Woof!") classCat(Animal): defspeak(self): print("Meow!") dog1=Dog("Rex") cat1=Cat("Whiskers") dog1.speak() cat1.speak()
在上面的代碼中,我們定義了一個名為 Animal 的類,并創(chuàng)建了兩個名為 Dog 和 Cat 的子類。這些子類繼承了 Animal 類的屬性和方法,并覆蓋了 speak() 方法。
多態(tài)性
多態(tài)性是面向對象編程中的一個概念,它允許我們使用相同的方法名調(diào)用不同類的方法。這樣,我們可以編寫通用的代碼來處理不同的對象類型。
在 Python 中,多態(tài)性是通過繼承和方法覆蓋來實現(xiàn)的。當我們調(diào)用一個方法時,Python 解釋器會在對象的類和其父類中查找該方法,直到找到為止。
classAnimal:
def__init__(self,name):
self.name=name
defspeak(self):
pass
classDog(Animal):
defspeak(self):
print("Woof!")
classCat(Animal):
defspeak(self):
print("Meow!")
defmake_animal_speak(animal):
animal.speak()
dog1=Dog("Rex")
cat1=Cat("Whiskers")
make_animal_speak(dog1)
make_animal_speak(cat1)
在上面的代碼中,我們定義了一個名為 make_animal_speak() 的函數(shù),它接受一個 Animal 類型的參數(shù),并調(diào)用該參數(shù)的 speak() 方法。然后,我們創(chuàng)建了一個 Dog 類型的對象和一個 Cat 類型的對象,并將它們作為參數(shù)傳遞給 make_animal_speak() 函數(shù)。
封裝
封裝是面向對象編程中的另一個概念,它允許我們將對象的內(nèi)部狀態(tài)隱藏起來,只公開必要的接口來訪問它。在 Python 中,封裝是通過屬性和方法的訪問控制來實現(xiàn)的。
在 Python 中,屬性和方法的訪問控制是通過屬性和方法的名稱前綴來實現(xiàn)的。如果屬性或方法的名稱以兩個下劃線開頭(__),則它是私有的,否則它是公共的。
classPerson:
def__init__(self,name,age):
self.__name=name
self.__age=age
defget_name(self):
returnself.__name
defset_name(self,name):
self.__name=name
defget_age(self):
returnself.__age
defset_age(self,age):
self.__age=age
person1=Person("John",25)
print(person1.get_name())
person1.set_name("Mike")
print(person1.get_name())
在上面的代碼中,我們定義了一個名為 Person 的類,并將 name 和 age 屬性設置為私有的。然后,我們定義了四個公共方法來訪問和修改這些屬性。
總結
Python 類和對象是面向對象編程的基本概念。通過定義類和創(chuàng)建對象,我們可以組織代碼并實現(xiàn)封裝、繼承和多態(tài)性。了解這些概念對于編寫高質(zhì)量的 Python 代碼非常重要。
審核編輯:湯梓紅
-
編程語言
+關注
關注
10文章
1965瀏覽量
39846 -
函數(shù)
+關注
關注
3文章
4421瀏覽量
67815 -
對象
+關注
關注
1文章
38瀏覽量
17754 -
python
+關注
關注
58文章
4882瀏覽量
90285 -
解釋器
+關注
關注
0文章
103瀏覽量
7021
原文標題:網(wǎng)絡工程師學Python-12-類和對象
文章出處:【微信號:網(wǎng)絡技術干貨圈,微信公眾號:網(wǎng)絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
Python的面向對象編程詳解
3分鐘看懂Python面向對象
python類的理解與使用
python類的多態(tài)和類的property屬性
python開發(fā)之‘類’講解
詳談Python的數(shù)據(jù)模型和對象模型
Python中的類和對象詳解
評論