120、類的格式是:
class 類名:注意類名是約定以大寫字母開頭
資料,需要給定初始值
def定義函式
在類中定義函式的時候需要在最開始加乙個預設引數self
使用時為:物件名=類名(),使用函式是為:物件名.函式名()
121、類的繼承,格式為:class 類名(父類名):如果沒有新的引數可以直接寫pass語句
122、類的多重繼承,格式為:class類名(父類1,父類2):可以使用多個類的函式
123、類的多型,不同物件對同一方法響應不同行動,即兩個類中有同名函式
124、python中的self相當於c++中的this指標。傳導物件的標籤,相當於呼叫專屬的函式。
125、__init__
(self)函式,即c++中的建構函式,不能有返回值
126、__del__
(self)函式,即c++中的析構函式,不能有返回值,而且del x≠x.
__del__
(),只有乙個類所有的例項物件都被del的時候才會使用__del__函式
127、python中預設屬性和方法都是公開的,在python中定義私有變數只需要在變數名或函式名前加上兩個下劃線』_』即可。但仍舊可以通過:
物件名._類名__變數名來訪問,所以python中是偽私有
128、組合:類的組合就是把類的例項化放到乙個新類裡面,就可以把舊類組合到新類裡面。主要是進行類之間的橫向。格式為:物件名.類名。就可以使用舊類中的函式和資料
129、類定義生成類物件,類物件(類名)與類屬性相互繫結,與例項物件(物件名)無關。對例項物件進行操作不會影響到類原本的屬性(初始值),對類物件進行操作會影響到類原本的屬性(初始值)
130、python嚴格要求方法需要有例項才能被呼叫,這種限制就是python的繫結。即python的函式都需要加上乙個self指標,在函式內部通過該指標才能呼叫函式的屬性。
131、類的bif(內建函式):
(1)issubclass(class,classinfo)函式,如果class是classinfo的子類則返回true
(2)isinstance(object,classinfo)函式,如果例項object屬於類classinfo則返回true
(3)hasattr(objext,name)函式,如果物件object中有屬性name(字串)則返回true
(4)getattr(objectt,name[,default])函式,返回物件指定的屬性值,如果指定的屬性不存在,會將default列印
(5)setattr(object,name,value)函式,設定物件中指定屬性的值,在物件object中查詢名為name的屬性,將value賦給他
(6)delattr(object,name)函式,刪除物件中指定的屬性
(7)property(fget=none,fset=none,fdel=none,doc=none)函式,通過屬性來設定屬性,格式是在類中:
名=property(返回值函式(自己定義),賦值函式(自己定義),刪除函式(自己定義))
之後可以通過:例項物件名.名,來得到所指定的屬性的值,通過=可以對該屬性賦值,通過del語句可以刪除該函式的值
132、魔法方法:魔法方法總是被雙下劃線包圍,如__init__,總能夠在適當的時候被呼叫。具體有:
(1)
__add__
(self,other),定義加法的行為:+(2
)__sub__
(self,other),定義減法的行為:-(3
)__mul__
(self,other),定義乘法的行為:*(4
)__truediv__
(self,other),定義真除法的行為:/(5
)__floordiv__
(self,other),定義整數除法的行為://(6
)__mod__
(self,other),定義取模演算法的行為:%(7
)__divmod__
(self,other),定義當被divmod
()呼叫時的行為(8
)__pow__
(self,other),定義當被power
()呼叫或*
*運算時的行為(9
)__lshift__
(self,other),定義按位左移的行為:<<(10
)__rshift__
(self,other),定義按位右移的行為:>>(11
)__and__
(self,other),定義按位與操作的行為:&(12
)__xor__
(self,other),定義按位異或操作的行為:^(13
)__or__
(self,other),定義按位或操作的行為:|
133、在介面下,如果想要重啟可以直接在shell選項中的restart shell即可
134、基本的魔法方法:
(1)
__new__
(cls[,.
..])
① __new__ 是在乙個物件例項化的時候所呼叫的第乙個方法
②它的第乙個引數是這個類,其他的引數是用來直接傳遞給 __init__ 方法
③__new__ 決定是否要使用該 __init__ 方法,因為 __new__ 可以呼叫其他類的構造方法或者直接返回別的例項物件來作為本類的例項,如果 __new__ 沒有返回例項物件,則 __init__ 不會被呼叫
④__new__ 主要是用於繼承乙個不可變的型別比如乙個 tuple 或者 string(2
)__init__
(self[,.
..]) 構造器,當乙個例項被建立的時候呼叫的初始化方法(3
)__del__
(self) 析構器,當乙個例項被銷毀的時候呼叫的方法(4
)__call__
(self[
, args...
]) 允許乙個類的例項像函式一樣被呼叫:x
(a, b) 呼叫 x.
__call__
(a, b)(5
)__len__
(self) 定義當被 len
() 呼叫時的行為(6
)__repr__
(self) 定義當被 repr
() 呼叫時的行為(7
)__str__
(self) 定義當被 str
() 呼叫時的行為(8
)__bytes__
(self) 定義當被 bytes
() 呼叫時的行為(9
)__hash__
(self) 定義當被 hash
() 呼叫時的行為(10
)__bool__
(self) 定義當被 bool
() 呼叫時的行為,應該返回 true 或 false(11
)__format__
(self, format_spec) 定義當被 format
() 呼叫時的行為
135、有關屬性:
(1)
__getattr__
(self, name) 定義當使用者試圖獲取乙個不存在的屬性時的行為(2
)__getattribute__
(self, name) 定義當該類的屬性被訪問時的行為(3
)__setattr__
(self, name, value) 定義當乙個屬性被設定時的行為(4
)__delattr__
(self, name) 定義當乙個屬性被刪除時的行為(5
)__dir__
(self) 定義當 dir
() 被呼叫時的行為(6
)__get__
(self, instance, owner) 定義當描述符的值被取得時的行為(7
)__set__
(self, instance, value) 定義當描述符的值被改變時的行為
__delete__
(self, instance) 定義當描述符的值被刪除時的行為
c語言學習筆記八
資料結構的概念 學這東西感覺一下又回到了十年前 資料結構 data structure 資料的組織方式 演算法 資料結構 程式 堆疊 後進先出 示例 include char stack 512 int top 0 void push char c char pull int is empty vo...
c語言學習筆記八
資料結構的概念 學這東西感覺一下又回到了十年前 資料結構 data structure 資料的組織方式 演算法 資料結構 程式 堆疊 後進先出 示例 include char stack 512 int top 0 void push char c char pull int is empty vo...
C語言學習 八 陣列
c語言支援陣列資料結構,它可以儲存乙個固定大小的相同型別元素的順序集合,陣列是用來儲存一系列相同型別的變數.type arrayname arraysize 這個是一維陣列,arraysize必須是乙個大於零的整數常量,type可以是任意有效的 c資料型別,例如要宣告乙個型別為double的包含10...