成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊Python里面的Self,是誰啊?

開發 后端
Python的類不能直接使用,只有通過創建實例(對象)才能發揮它的功能,每個實例(對象)都是獨一無二的,它可以調用類的方法、屬性。類就像靈魂附體一樣,讓實例(對象)有了自己(self)的功能。

大家學Python面向對象的時候,總會遇到一個讓人難以理解的存在:self。

這個self到底是誰啊,為什么每個類實例方法都有一個參數self,它到底有什么作用呢?

「先下結論:類實例化后,self即代表著實例(對象)本身。」

想要理解self有個最簡單的方法,就是你把self當做「實例(對象)的身份證。」

Python的類不能直接使用,只有通過創建實例(對象)才能發揮它的功能,每個實例(對象)都是獨一無二的,它可以調用類的方法、屬性。類就像靈魂附體一樣,讓實例(對象)有了自己(self)的功能。

初學者會發現,類的方法(構造方法和實例方法)中都會有一個固定參數self,其實這個參數就是代表著實例(對象)本身,就像是一個身份證,實例可以憑著身份證去調用類方法。

類比人類,人類就是一個Python類,每個個體的人代表著實例(對象),而每個人的身份證代表的Python中self,每個人可以憑借身份證去上大學、坐高鐵、住酒店...(方法),而Python中的實例(對象)也可以憑著self去調用類的方法。

上面是用類比的方法解釋了下self的含義,說到底self就是代表著實例本身,「當某個實例(對象)調用類方法時,該對象會把自身的引用作為第一個參數自動傳給該方法,而這第一個參數就是self。」

而且self只是約定俗成的寫法,你可以用任何其他名稱代替self,不會改變代碼含義,只不過我們一般不這樣做。

為了更好的說明self的作用,我們來舉個例子,下面有一個Students類:

class Students:
# 構造方法
def __init__(self,name):
self.name = name
# 實例方法
def study(self,examination_results):
self.examination_results = examination_results
print("同學{}的考試分數是{}".format(self.name,self.examination_results))
print("該實例對象的地址是{}".format(self))

先來個實例student_a。

studend_a = Students('studend_a')
print(studend_a.name)

結果打印出:studend_a。

再來個實例student_b。

studend_b = Students('studend_b')
print(studend_b.name)

結果打印出:studend_b。

可以看出,實例(對象)不一樣,打印出的結果也不一樣,當類被實例化后,self.name其實就等于實例(對象).name。

還是以剛剛的代碼為例,我們再來調用里面的實例方法,里面會打印出self,就能看得更加明顯了。

實例student_a:

studend_a = Students('studend_a')
print(studend_a.study(80))

輸出結果:

同學studend_a的考試分數是80 該實例對象的地址是<「main」.Students object at 0x00000129EB0F6A90>。

實例student_b:

studend_b = Students('studend_b')
print(studend_b.study(80))

輸出結果:

同學studend_b的考試分數是80 該實例對象的地址是<「main」.Students object at 0x00000129EB0F6B38>。

大家能清楚看到兩個實例打印出的self是不一樣的,因為self代表著實例(對象)本身。

以實例student_b來說,打印self出現下面對象信息。

<__main__.Students object at 0x00000129EB0F6B38>。

如果再打印 student_b,會出現同樣的結果。

print(student_b)

輸出:

<__main__.Students object at 0x00000129EB0F6B00>。

這個時候是不是就清楚了,類實例化后,self即代表著實例(對象)本身。

責任編輯:姜華 來源: 今日頭條
相關推薦

2024-04-11 13:02:10

Rust數據類型

2019-12-16 09:37:19

Kafka架構數據

2024-11-22 00:09:15

2024-01-29 00:29:49

通信技術行業

2021-02-05 08:42:21

云原生系統方式

2022-03-18 10:43:12

WebSocketHTML5TCP 連接

2020-06-17 07:40:26

監控系統zabbix

2021-07-26 05:10:13

JavaJakarta EEJSR

2021-07-20 08:03:43

微服務應用程序

2023-06-08 18:17:07

OSPF路由協議

2013-01-04 13:50:06

Ubuntu

2017-07-12 16:45:10

Docker概念鏡像

2009-12-17 14:24:39

Linux內核

2020-07-02 14:30:12

SDNSDON交換機

2022-10-28 08:46:57

變革型領導IT

2022-03-17 21:30:31

BRAS寬帶服務器

2023-05-14 19:18:07

2024-05-31 09:31:00

2022-09-26 12:46:02

Pythonelf

2023-12-25 07:28:24

PythonSelf對象編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产一区二区三区动漫 | 国产精品美女久久久av超清 | 黄色在线免费观看 | 久草免费福利 | 日韩在线观看中文字幕 | 黄色大片在线播放 | av片免费 | 欧美日韩91 | 九色视频网站 | 亚洲福利在线观看 | 黄在线 | 免费观看色 | 久草免费在线视频 | 一区二区免费视频 | 九九热免费观看 | 久久精品视频在线观看 | 日韩一区二区三区在线视频 | 欧美精品一区在线发布 | 日韩一区二区三区四区五区 | 国产精品免费一区二区 | 中文字幕av亚洲精品一部二部 | av影片在线 | 在线视频 亚洲 | 日韩中文一区二区三区 | 青草视频在线 | av大全在线观看 | 欧美一区二区三区大片 | 亚洲人在线播放 | 精品成人| 欧美日韩中文字幕在线播放 | 国产高清免费视频 | 国产精品高清在线 | 一区二区视频 | 久久久久久久久99精品 | 91久久看片| 亚洲大片一区 | 亚洲成人国产综合 | 国产999精品久久久久久 | 中文字幕 在线观看 | 日韩毛片在线观看 | 午夜精品一区二区三区在线观看 |