国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python基礎教程之面向對象的一些概念

2020-02-23 05:45:51
字體:
來源:轉載
供稿:網友

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

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

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

相近對象,歸為類

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

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

先定義鳥類
代碼如下:
class Bird(object):
    have_feather = True
    way_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] + dx
        position[1] = position[1] + dy
        return position

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐亭县| 尼玛县| 孝义市| 威信县| 济南市| 南岸区| 江西省| 吉水县| 浮梁县| 邻水| 巴彦淖尔市| 湖南省| 迁西县| 临泽县| 香港 | 延吉市| 星子县| 德保县| 应城市| 无棣县| 泸溪县| 平谷区| 尖扎县| 潮州市| 饶阳县| 都匀市| 托克托县| 宕昌县| 贡山| 翁牛特旗| 秦皇岛市| 武城县| 德保县| 莲花县| 塘沽区| 阜新| 聊城市| 广州市| 天水市| 无棣县| 淄博市|