日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的面向对象编程学生成绩_python的类_面向对象编程

發(fā)布時間:2025/5/22 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的面向对象编程学生成绩_python的类_面向对象编程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

摘自謬雪峰https://www.liaoxuefeng.com/wiki/1016959663602400/1017496031185408

面向對象編程(定義對象)和面向過程(定義函數(shù))的區(qū)別,各自優(yōu)缺點:

面向對象編程的一個重要特點就是數(shù)據(jù)封裝,在上面的Student類中,每個實例就擁有各自的name和score這些數(shù)據(jù)。我們可以通過函數(shù)來訪問這些數(shù)據(jù),比如打印一個學生的成績:

>>> def print_score(std):

... print('%s: %s' % (std.name, std.score))

...

>>> print_score(bart)

Bart Simpson: 59

但是,既然Student實例本身就擁有這些數(shù)據(jù),要訪問這些數(shù)據(jù),就沒有必要從外面的函數(shù)去訪問,可以直接在Student類的內(nèi)部定義訪問數(shù)據(jù)的函數(shù),這樣,就把“數(shù)據(jù)”給封裝起來了。這些封裝數(shù)據(jù)的函數(shù)是和Student類本身是關聯(lián)起來的,我們稱之為類的方法:

class Student(object):

def __init__(self, name, score):

self.name = name

self.score = score

def print_score(self):

print('%s: %s' % (self.name, self.score))

這樣一來,我們從外部看Student類,就只需要知道,創(chuàng)建實例需要給出name和score,而如何打印,都是在Student類的內(nèi)部定義的,這些數(shù)據(jù)和邏輯被“封裝”起來了,調(diào)用很容易,但卻不用知道內(nèi)部實現(xiàn)的細節(jié)。

小結

類是創(chuàng)建實例的模板,而實例則是一個一個具體的對象,各個實例擁有的數(shù)據(jù)都互相獨立,互不影響;

方法就是與實例綁定的函數(shù),和普通函數(shù)不同,方法可以直接訪問實例的數(shù)據(jù);

通過在實例上調(diào)用方法,我們就直接操作了對象內(nèi)部的數(shù)據(jù),但無需知道方法內(nèi)部的實現(xiàn)細節(jié)。

類的私有變量

兩個下劃線開頭的變量是私有變量,再外部不能直接訪問,但是,有些時候,你會看到以一個下劃線開頭的實例變量名,比如_name,這樣的實例變量外部是可以訪問的,但是,按照約定俗成的規(guī)定,當你看到這樣的變量時,意思就是,“雖然我可以被訪問,但是,請把我視為私有變量,不要隨意訪問”。

雙下劃線開頭的實例變量是不是一定不能從外部訪問呢?其實也不是。不能直接訪問__name是因為Python解釋器對外把__name變量改成了_Student__name,所以,仍然可以通過_Student__name來訪問__name變量:

>>> bart._Student__name

'Bart Simpson'

但是強烈建議你不要這么干,因為不同版本的Python解釋器可能會把__name改成不同的變量名。

總的來說就是,Python本身沒有任何機制阻止你干壞事,一切全靠自覺。

類的繼承的多態(tài)性

要理解什么是多態(tài),我們首先要對數(shù)據(jù)類型再作一點說明。當我們定義一個class的時候,我們實際上就定義了一種數(shù)據(jù)類型。我們定義的數(shù)據(jù)類型和Python自帶的數(shù)據(jù)類型,比如str、list、dict沒什么兩樣:

a = list() # a是list類型

b = Animal() # b是Animal類型

c = Dog() # c是Dog類型

判斷一個變量是否是某個類型可以用isinstance()判斷:

>>> isinstance(a, list)

True

>>> isinstance(b, Animal)

True

>>> isinstance(c, Dog)

True

什么是多態(tài)?多態(tài)的優(yōu)點

多態(tài)的好處就是,當我們需要傳入Dog、Cat、Tortoise……時,我們只需要接收Animal類型就可以了,因為Dog、Cat、Tortoise……都是Animal類型,然后,按照Animal類型進行操作即可。由于Animal類型有run()方法,因此,傳入的任意類型,只要是Animal類或者子類,就會自動調(diào)用實際類型的run()方法,這就是多態(tài)的意思:

對于一個變量,我們只需要知道它是Animal類型,無需確切地知道它的子類型,就可以放心地調(diào)用run()方法,而具體調(diào)用的run()方法是作用在Animal、Dog、Cat還是Tortoise對象上,由運行時該對象的確切類型決定,這就是多態(tài)真正的威力:調(diào)用方只管調(diào)用,不管細節(jié),而當我們新增一種Animal的子類時,只要確保run()方法編寫正確,不用管原來的代碼是如何調(diào)用的。這就是著名的“開閉”原則:

對擴展開放:允許新增Animal子類;

對修改封閉:不需要修改依賴Animal類型的run_twice()等函數(shù)。

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的python的面向对象编程学生成绩_python的类_面向对象编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清免费观看 | 久久成人a毛片免费观看网站 | 国产美女又黄又爽又色视频免费 | 国产一二视频 | 一区二区三区日韩 | 欧美色图俺去了 | 麻豆网站免费看 | 中国黄色1级片 | 欧美高清videos高潮hd | 丁香婷婷六月 | 夜夜嗨av一区二区 | 久久成人久久爱 | 亚洲黄色片子 | 亚洲一区二区三区在线 | 91九色精品 | 亚洲天天| 激情国产精品 | 一边顶弄一边接吻 | 白嫩初高中害羞小美女 | 日韩色小说 | 日韩av网站大全 | 欧美三级中文字幕 | 欧美日韩经典 | 色人阁av| 日本伦理中文字幕 | 精品美女 | 国产女人被狂躁到高潮小说 | 亚洲精品丝袜 | 爱视频福利网 | 中文字幕5566 | 国产尤物| 少妇无码av无码专区在线观看 | 岛国av片| 欧美做爰全过程免费观看 | 欧洲视频一区二区 | 亚洲第一在线播放 | 国产精品一区二区不卡 | av三级在线播放 | 亚洲国产精品毛片av不卡在线 | 日韩诱惑| 91黑丝美女 | 叶全真三级 | 都市激情自拍偷拍 | 亚洲在线视频免费观看 | 欧美日韩a| 亚洲日本精品一区 | 久久tv| 亚洲欧美精品一区二区三区 | 黄色一级大片在线免费看产 | www.五月.com| 国产精品成人免费视频 | 日日夜夜人人 | 西川结衣在线观看 | 国产九九九精品 | 一区二区三区四区在线视频 | 亚洲v欧美v另类v综合v日韩v | 伊人精品在线观看 | 在线午夜电影 | 免费在线一级片 | 亚洲一级av无码毛片精品 | 国产午夜视频 | 欧美九九视频 | 国产在线观看免费播放 | 色哟哟视频在线观看 | 国产妇女视频 | 人人看人人看 | 成人午夜激情影院 | 国产色视频一区二区三区qq号 | 特黄视频免费看 | 狐狸视频污 | 午夜国产福利视频 | 亚洲欧美日韩精品永久在线 | 国产美女被草 | 亚洲羞羞 | 免费在线观看日韩av | 欧美xxxx日本和非洲 | 亚洲精品字幕在线观看 | 亚洲一区二区久久 | 久久久精品999 | www.麻豆av | 老湿机69福利区午夜x片 | 日韩一区二区三区精品视频 | 国精品一区二区三区 | 欧美成人免费在线 | 精品人妻互换一区二区三区 | 国产精品国产三级国产三级人妇 | 2019中文字幕在线免费观看 | 欧美精品一级片 | 国产在线精 | 国产一区二区高清视频 | 久久一区二区三区精品 | 99色综合网 | 亚洲影视中文字幕 | 国产亚洲精品久久久久丝瓜 | 亚洲男人的天堂网站 | 51成人做爰www免费看网站 | 国产精品无码一区二区三区在线看 | 亚洲午夜视频在线 | 成人午夜视频在线观看 |