阿里天池python訓練營 day08總結

2021-10-09 11:07:51 字數 2393 閱讀 9568

物件是類的例項。換句話說,類主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。

我們可以使用關鍵字class定義 python 類,關鍵字後面緊跟類的名稱、分號和類的實現。

python 的self相當於 c++ 的this指標。

類的方法與普通的函式只有乙個特別的區別 —— 它們必須有乙個額外的第乙個引數名稱(對應於該例項,即該物件本身),按照慣例它的名稱是self。在呼叫方法時,我們無需明確提供與引數self相對應的引數。

據說,python 的物件天生擁有一些神奇的方法,它們是物件導向的 python 的一切…

它們是可以給你的類增加魔力的特殊方法…

如果你的物件實現了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,而這一切都是自動發生的…

類有乙個名為__init__(self[, param1, param2...])的魔法方法,該方法在類例項化時會自動呼叫。

在 python 中定義私有變數只需要在變數名或函式名前加上「__」兩個下劃線,那麼這個函式或變數就會為私有的了。

在內部,python使用一種 name mangling 技術,將__membername替換成 _classname__membername,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被"翻譯"成前面加上單下劃線和類名的形式。

例如:為了保證不能在class之外訪問私有變數,python會在類的內部自動的把我們定義的__spam私有變數的名字替換成為_classname__spam

(注意,classname前面是乙個下劃線,spam前是兩個下劃線),因此,使用者在外部訪問__spam的時候就會提示找不到相應的變數。

python中的私有變數和私有方法仍然是可以訪問的;訪問方法如下:

私有變數:例項._類名__變數名

私有方法:例項._類名__方法名()

python 同樣支援類的繼承,派生類的定義如下所示:

class derivedclassname(baseclassname):

statement-1..

.statement-n

baseclassname(基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用:

class derivedclassname(modname.baseclassname):

statement-1..

.statement-n

解決繼承時,父類方法未被完全繼承過來的問題可用以下兩種方式:

python 雖然支援多繼承的形式,但我們一般不使用多繼承,因為容易引起混亂。

class derivedclassname(base1, base2, base3):

statement-1..

.statement-n

需要注意圓括號中父類的順序,若是父類中有相同的方法名,而在子類使用時未指定,python 從左至右搜尋,即方法在子類中未找到時,從左到右查詢父類中是否包含方法。

# 方法名同,預設呼叫的是在括號中排前地父類的方法

class a(object):

pass

類屬性:類裡面方法外面定義的變數稱為類屬性。類屬性所屬於類物件並且多個例項物件之間共享同乙個類屬性,說白了就是類屬性所有的通過該類例項化的物件都能共享。

例項屬性:例項屬性和具體的某個例項物件有關係,並且乙個例項物件和另外乙個例項物件是不共享屬性的,說白了例項屬性只能在自己的物件裡面使用,其他的物件不能直接使用,因為self是誰呼叫,它的值就屬於該物件。

python 嚴格要求方法需要有例項才能被呼叫,這種限制其實就是 python 所謂的繫結概念。

python 物件的資料屬性通常儲存在名為.__ dict__的字典中,我們可以直接訪問__dict__,或利用 python 的內建函式vars()獲取.__ dict__

阿里雲天池Python訓練營

字串 引號之間的字元集合 單引號或雙引號 反斜槓符號 單引號 雙引號 n換行 t橫向製表符 tab r回車 原始字串 所有的字串都是直接按照字面的意思來使用 不轉義特殊或不能列印的字元 在字串前邊加乙個英文本母 r 三引號允許字串跨多行 可包含換行符 製表符以及其他特殊字元 具有不可修改性 通過元素...

阿里雲天池python訓練營

函式是物件 可從函式中返回用於構建高階函式 def函式名 引數 函式 文件字串 function suite return 表示式 以def 形參必須放在圓括號中 形參只是形式 表示佔據的引數位置 函式的第一行語句可使用文件字串 存放函式說明 利用.doc 呼叫 執行的 需要縮排 return 表示...

阿里雲天池Python訓練營

本節主要介紹python中的類與物件,並針對相關用法進行展開說明。其中拓展了需要掌握及區別的內容,對於類的用法及物件的含義需重點掌握。類定義物件的結構 以類為模板建立物件 物件是類的例項 類不但包含方法定義 還包含所有例項共享的資料 class 類名 類的實現 類的名稱以大寫字母開頭 子類建構函式基...