本節主要介紹python中的類與物件,並針對相關用法進行展開說明。其中拓展了需要掌握及區別的內容,對於類的用法及物件的含義需重點掌握。
類定義物件的結構 以類為模板建立物件(物件是類的例項)
類不但包含方法定義 還包含所有例項共享的資料
class 類名 :
類的實現
類的名稱以大寫字母開頭
子類建構函式基礎父類建構函式過程如下:
例項化物件c ----> c 呼叫子類__init__() ---- > 子類__init__()繼承父類__init__() ----- > 呼叫父類 __init__()
類的方法必須有乙個額外的第乙個引數名稱 按照慣例名稱是
self
呼叫方法時 無需明確提供與引數
self
相對應的引數
如果物件實現某個魔法方法 該方法會在特殊的情況下自動呼叫
類的魔法方法:
__init__(self[, param1, param2...])
類例項化時自動呼叫
私有變數:在變數名或函式名前加上__
(兩個下劃線)
私有屬性:類外部無法直接進行訪問
私有方法
派生類的定義:
class派生類名(模組名1.基類名1,模組名2.基類名2, 模組名3.基類名3):
類的實現1
.
類的實現n
基類名:必須與派生類定義在乙個作用域內(可以類或表示式)
如果子類中定義與父類同名的方法或屬性 自動覆蓋父類對應的方法或屬性
呼叫父類方法:
super().__init__()
解決多重繼承問題
支援多繼承的形式 但一般不使用
父類順序:多重繼承時 若是父類中有相同的方法名 而在子類使用時未指定時從左到右
在不同父類中查詢
類物件:建立乙個類 也是乙個物件只有乙個
class類名(object):
pass
例項物件:通過例項化類建立的物件可以有多個
類屬性:類中方法外面定義的變數(屬於類物件 多個例項物件間共享)
類屬性通過(類名.類屬性)呼叫
例項屬性:與具體的例項物件有關 (不同例項物件間屬性不共享) 值屬於呼叫self
的物件
屬性與方法名相同 屬性會覆蓋方法
繫結:方法需要有例項才能被呼叫
物件的資料屬性通常儲存在名為.__ dict__的字典中 訪問__dict__ 利用 vars()獲取.__ dict__
issubclass(class, classinfo)
判斷class是否是classinfo的子類
classinfo可以是類物件的元組 只要class是其中任何乙個子類 返回true
乙個類是其自身的子類
isinstance(object, classinfo)
判斷物件是否已知型別
若object不是物件 永遠返回false
classinfo不是類或者由類物件組成的元組 丟擲typeerror
hasattr(object, name)
判斷物件是否包含對應的屬性
getattr(object, name[, default])
得到乙個物件屬性值
setattr(object, name, value)
設定屬性值 屬性不一定是存在的(對應函式 getattr())
delattr(object, name)
刪除屬性
class property([fget[, fset[, fdel[, doc]]]])
在新式類中返回屬性值
fget:獲取屬性值
fset:設定屬性值
fdel:刪除屬性值
doc:屬性描述資訊
阿里雲天池Python訓練營
字串 引號之間的字元集合 單引號或雙引號 反斜槓符號 單引號 雙引號 n換行 t橫向製表符 tab r回車 原始字串 所有的字串都是直接按照字面的意思來使用 不轉義特殊或不能列印的字元 在字串前邊加乙個英文本母 r 三引號允許字串跨多行 可包含換行符 製表符以及其他特殊字元 具有不可修改性 通過元素...
阿里雲天池python訓練營
函式是物件 可從函式中返回用於構建高階函式 def函式名 引數 函式 文件字串 function suite return 表示式 以def 形參必須放在圓括號中 形參只是形式 表示佔據的引數位置 函式的第一行語句可使用文件字串 存放函式說明 利用.doc 呼叫 執行的 需要縮排 return 表示...
阿里雲天池python訓練營
1.if 語句 if expression expr true suite 2.if else 語句 if expression expr true suite else expr false suite 3.if elif else 語句 temp input 請輸入成績 source int t...