0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中的類和對象詳解

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-04-20 16:53 ? 次閱讀

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 代碼非常重要。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python的面向對象編程詳解

    一般編程可分為面向過程編程,和面向對象編程。Python的面向對象編程,與Java的面向對象很像。之所以需要面向對象編程,是為了更好地實現(xiàn)封
    發(fā)表于 09-04 16:35 ?692次閱讀
    <b class='flag-5'>Python</b>的面向<b class='flag-5'>對象</b>編程<b class='flag-5'>詳解</b>

    3分鐘看懂Python面向對象

    Python雖然是解釋型語言,但從設(shè)計之初就已經(jīng)是一門面向對象的語言,對于Python來說一切皆為對象。正因為如此,在Python
    發(fā)表于 06-08 14:20

    python的理解與使用

    python的理解與使用1. 通俗理解(英文名 class),是具有相同特性(屬性)和行為(方法)的對象(實例)的抽象模板。從定義上來
    發(fā)表于 03-07 16:51

    python的多態(tài)和的property屬性

    是鴨子。套入剛剛的代碼實例,就是一個對象,只要有 speak 方法,那么他就是一個 do_speak 方法所需要的 people 對象。的 property 屬性在之前的學(xué)習(xí)
    發(fā)表于 03-09 16:38

    python開發(fā)之‘’講解

    Python 在盡可能不增加新的語法和語義的情況下加入了機(jī)制。這種機(jī)制是 C++ 和 Modula-3 的混合。 Python沒有在
    發(fā)表于 03-15 14:12 ?1次下載

    揭開Pythonself的神秘面紗

    許多python初學(xué)者,在接觸到python面向對象的時候,就被包含的方法的self打敗了
    的頭像 發(fā)表于 01-19 17:51 ?1878次閱讀
    揭開<b class='flag-5'>Python</b><b class='flag-5'>類</b><b class='flag-5'>中</b>self的神秘面紗

    詳談Python的數(shù)據(jù)模型和對象模型

    Python官方文檔說法是“Python數(shù)據(jù)模型”,大多數(shù)Python書籍作者說法是“Python對象模型”,它們是一個意思,表示“計算機(jī)編
    的頭像 發(fā)表于 02-10 15:59 ?2713次閱讀
    詳談<b class='flag-5'>Python</b>的數(shù)據(jù)模型和<b class='flag-5'>對象</b>模型

    python迭代器詳解

    ,可能需要借助一些函數(shù)來判別,比如 Python 內(nèi)置的 collections.abc 模塊,這個模塊只有在 Python 才有噢,在這個模塊中提供了一個 Iterable ,可
    的頭像 發(fā)表于 02-24 15:42 ?1440次閱讀

    python的繼承詳解

    python的繼承 的繼承,跟人類繁衍的關(guān)系相似。 被繼承的稱為基(也叫做父),繼承而
    的頭像 發(fā)表于 03-08 16:40 ?3302次閱讀

    Python的屬性和方法是什么

    編程我們用來創(chuàng)建對象。日常生活的汽車設(shè)計圖就是我們Python
    的頭像 發(fā)表于 02-23 10:17 ?1045次閱讀

    什么是python對象

    Python,type函數(shù)查看數(shù)據(jù)類型
    的頭像 發(fā)表于 02-23 10:18 ?945次閱讀

    Python的繼承詳解

    Python ,繼承是一種重要的面向對象編程概念。通過繼承,我們可以定義一個新的,它繼承了現(xiàn)有的屬性和方法。這種代碼重用可以使我們
    的頭像 發(fā)表于 04-20 16:56 ?1444次閱讀

    [源代碼]Python算法詳解

    [源代碼]Python算法詳解[源代碼]Python算法詳解
    發(fā)表于 06-06 17:50 ?8次下載

    Python中元的作用

    1.什么是 在理解元之前,我們必須先掌握Python(class)。 和大多數(shù)語言一樣,Pyt
    的頭像 發(fā)表于 11-02 11:18 ?710次閱讀
    <b class='flag-5'>Python</b>中元<b class='flag-5'>類</b>的作用

    pythonopen函數(shù)的用法詳解

    pythonopen函數(shù)的用法詳解 Python的open()函數(shù)用于打開文件。它接受文件名和模式作為參數(shù),并返回一個文件
    的頭像 發(fā)表于 01-30 15:31 ?2574次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品