Python 是一種面向?qū)ο蟮?a target="_blank">編程語言,它支持類和對象。類是一種用戶自定義的數(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__() 方法是類的構(gòu)造函數(shù),它在創(chuàng)建對象時調(diào)用。self 參數(shù)是一個指向當(dāng)前對象的引用,它用于訪問對象的屬性和方法。
創(chuàng)建對象
要創(chuàng)建一個對象,我們必須使用類的名稱和構(gòu)造函數(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)性是面向?qū)ο缶幊讨械囊粋€概念,它允許我們使用相同的方法名調(diào)用不同類的方法。這樣,我們可以編寫通用的代碼來處理不同的對象類型。
在 Python 中,多態(tài)性是通過繼承和方法覆蓋來實現(xiàn)的。當(dāng)我們調(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ù)。
封裝
封裝是面向?qū)ο缶幊讨械牧硪粋€概念,它允許我們將對象的內(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 屬性設(shè)置為私有的。然后,我們定義了四個公共方法來訪問和修改這些屬性。
總結(jié)
Python 類和對象是面向?qū)ο缶幊痰幕靖拍?。通過定義類和創(chuàng)建對象,我們可以組織代碼并實現(xiàn)封裝、繼承和多態(tài)性。了解這些概念對于編寫高質(zhì)量的 Python 代碼非常重要。
審核編輯:湯梓紅
-
編程語言
+關(guān)注
關(guān)注
10文章
1952瀏覽量
35670 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4364瀏覽量
63809 -
對象
+關(guān)注
關(guān)注
1文章
38瀏覽量
17486 -
python
+關(guān)注
關(guān)注
56文章
4822瀏覽量
85817 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6652
原文標(biāo)題:網(wǎng)絡(luò)工程師學(xué)Python-12-類和對象
文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Python的面向對象編程詳解

3分鐘看懂Python面向對象
python類的理解與使用
python類的多態(tài)和類的property屬性
python開發(fā)之‘類’講解
詳談Python的數(shù)據(jù)模型和對象模型

評論