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

歡迎訪問 生活随笔!

生活随笔

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

python

Python基础08 面向对象的基本概念

發布時間:2025/4/16 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础08 面向对象的基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python使用類(class)和對象(object),進行面向對象(object-oriented programming,簡稱OOP)的編程。

面向對象的最主要目的是提高程序的重復使用性。我們這么早切入面向對象編程的原因是,Python的整個概念是基于對象的。了解OOP是進一步學習Python的關鍵。

下面是對面向對象的一種理解,基于分類。

?

相近對象,歸為類

在人類認知中,會根據屬性相近把東西歸類,并且給類別命名。比如說,鳥類的共同屬性是有羽毛,通過產卵生育后代。任何一只特別的鳥都在鳥類的原型基礎上的。

面向對象就是模擬了以上人類認知過程。在Python語言,為了聽起來酷,我們把上面說的“東西”稱為對象(object)。

?

先定義鳥類

class Bird(object):have_feather = Trueway_of_reproduction = 'egg'

我們定義了一個類別(class),就是鳥(Bird)。在隸屬于這個類比的語句塊中,我們定義了兩個變量,一個是有羽毛(have_feather),一個是生殖方式(way_of_reproduction),這兩個變量對應我們剛才說的屬性(attribute)。我們暫時先不說明括號以及其中的內容,記為問題1

?

假設我養了一只小雞,叫summer。它是個對象,且屬于鳥類。使用前面定義的類:

summer = Bird() print summer.way_of_reproduction

通過第一句創建對象,并說明summer是類別鳥中的一個對象,summer就有了鳥的類屬性,對屬性的引用是通過?對象.屬性(object.attribute)?的形式實現的。

?

可憐的summer,你就是個有毛產的蛋貨,好不精致。

?

動作

日常認知中,我們在通過屬性識別類別的時候,有時根據這個東西能做什么事情來區分類別。比如說,鳥會移動。這樣,鳥就和房屋的類別區分開了。這些動作會帶來一定的結果,比如移動導致位置的變化。

這樣的一些“行為”屬性為方法(method)。Python中通過在類的內部定義函數,來說明方法。

class Bird(object):
? ?have_feather = True
? ? way_of_reproduction
= 'egg'
def move(self, dx, dy):position = [0,0]
position[0]
= position[0] + dxposition[1] = position[1] + dy
return position

summer = Bird()
print 'after move:',summer.move(5,8)

我們重新定義了鳥這個類別。鳥新增一個方法屬性,就是表示移動的方法move。(我承認這個方法很傻,你可以在看過下一講之后定義個有趣些的方法)

(它的參數中有一個self,它是為了方便我們引用對象自身。方法的第一個參數必須是self,無論是否用到。有關self的內容會在下一講展開)

?

另外兩個參數,dx, dy表示在x、y兩個方向移動的距離。move方法會最終返回運算過的position。

在最后調用move方法的時候,我們只傳遞了dx和dy兩個參數,不需要傳遞self參數(因為self只是為了內部使用)。

?

我的summer可以跑了。

?

子類

類別本身還可以進一步細分成子類

?

比如說,鳥類可以進一步分成雞,大雁,黃鸝。

在OOP中,我們通過繼承(inheritance)來表達上述概念。

class Chicken(Bird):way_of_move = 'walk'possible_in_KFC = Trueclass Oriole(Bird):way_of_move = 'fly'possible_in_KFC = Falsesummer = Chicken() print summer.have_feather print summer.move(5,8)

新定義的雞(Chicken)類的,增加了兩個屬性:移動方式(way_of_move),可能在KFC找到(possible_in_KFC)

在類定義時,括號里為了Bird。這說明,Chicken是屬于鳥類(Bird)的一個子類,即Chicken繼承自Bird。自然而然,Bird就是Chicken的父類。Chicken將享有Bird的所有屬性。盡管我只聲明了summer是雞類,它通過繼承享有了父類的屬性(無論是變量屬性have_feather還是方法屬性move)

?

新定義的黃鸝(Oriole)類,同樣繼承自鳥類。在創建一個黃鸝對象時,該對象自動擁有鳥類的屬性。

?

通過繼承制度,我們可以減少程序中的重復信息和重復語句。如果我們分別定義兩個類,而不繼承自鳥類,就必須把鳥類的屬性分別輸入到雞類和黃鸝類的定義中。整個過程會變得繁瑣,因此,面向對象提高了程序的可重復使用性。

(回到問題1, 括號中的object,當括號中為object時,說明這個類沒有父類(到頭了))

?

將各種各樣的東西分類,從而了解世界,從人類祖先開始,我們就在練習了這個認知過程,面向對象是符合人類思維習慣的。所謂面向過程,也就是執行完一個語句再執行下一個,更多的是機器思維。通過面向對象的編程,我們可以更方便的表達思維中的復雜想法。

?

總結

將東西根據屬性歸類 ( 將object歸為class )

方法是一種屬性,表示動作

用繼承來說明父類-子類關系。子類自動具有父類的所有屬性。

self代表了根據類定義而創建的對象。

?

建立對一個對象: 對象名 = 類名()

引用對象的屬性: object.attribute

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

總結

以上是生活随笔為你收集整理的Python基础08 面向对象的基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩高清中文字幕 | 人人草在线 | 福利视频三区 | 精品欧美一区二区精品少妇 | 日本视频在线 | 国产成人免费 | 亚洲三级在线免费观看 | 国产黑丝在线视频 | 97青青草| 99热热热热 | 日韩一区欧美二区 | 999xxxx| 人妻洗澡被强公日日澡电影 | 四虎在线看片 | 福利视频精品 | 欧美成人三区 | 96精品视频在线观看 | 成人入口| bt男人天堂 | 国产天天射 | 三级av免费看 | 亚洲第一视频网 | 国产精品无码av在线有声小说 | 国产伦子伦对白视频 | av午夜在线观看 | 日韩色综合网 | 日韩视频在线播放 | 亚洲美女视频网站 | 亚洲第一av在线 | 黄色一级片av | 黄色免费91| 艳母免费在线观看 | 自拍一区在线 | 日本特黄色片 | av色哟哟| 久久无码视频网站 | 国产福利二区 | 国产日本欧美一区二区 | 欧美视频一区二区在线观看 | 99er这里只有精品 | 国产欧美日韩高清 | 亚洲 在线 | 国产精品亚洲成在人线 | 在线免费观看毛片 | 久草在现 | 久草免费在线观看视频 | 一起草av在线 | 欧美三级一区二区三区 | 日韩少妇精品 | 另类av在线 | 亚洲欧美日本一区二区 | 三年中文在线观看中文版 | 欧美爱爱一区二区 | 国产又粗又猛又爽69xx | 日韩欧美视频二区 | 国产一级久久久久毛片精品 | 未满十八岁勿进 | 波多野结衣在线免费视频 | 91视频分类| 国产欧美123 | 久操影视 | 国产性70yerg老太 | 台湾男男gay做爽爽的视频 | 国产av无码专区亚洲精品 | 欧美aaa级片| 韩国三级在线播放 | 波多野结衣视频免费观看 | 中文字幕一区三区 | 希岛婚前侵犯中文字幕在线 | 国产精久久久久 | 久热在线| 二区三区视频 | 日韩一区二区三区免费视频 | 一级坐爱片 | 亚洲无码精品国产 | 懂色av一区二区三区免费观看 | 色香影院| 凸凹人妻人人澡人人添 | 99re在线视频 | 久久亚洲av无码西西人体 | 在线观看中文字幕一区二区 | 亚洲成色网 | 亚洲国产激情 | 总裁憋尿呻吟双腿大开憋尿 | 少妇高潮21p | 亚洲精品国产精品乱码在线观看 | 黄色在线视频播放 | 伊人成人在线观看 | 亚洲天堂一区 | 国产一卡二卡 | 性欧美bbw| av尤物在线| 一个人看的毛片 | 欧美一级片在线视频 | caoprom超碰 | 午夜xx| 丝袜脚交国产在线观看 | 久久五月网 | 成人综合婷婷国产精品久久 |