freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

python-面向對象學習總結-在線瀏覽

2024-09-14 23:07本頁面
  

【正文】 I am a static methond,my count is3() 。I am a class method,my count is5 ()39。39。39。 從上面的例子來看,靜態(tài)方法和類方法基本上區(qū)別不大,特別是有Java編程基礎的人會簡單的認為靜態(tài)方法和類方法就是一回事,可是在Python中事實是這樣的嗎?看下面的例子:() 。I am a static methond,my count is6() 。Iam a class method,my count is8 如果父類中定義有靜態(tài)方法a(),在子類中沒有覆蓋該方法的話,()仍然指的是父類的a()方法。staticmethod只適用于不想定義全局函數(shù)的情況。 封裝和訪問控制 與Java不同,Python的訪問控制相對簡單,沒有public,private,protected等屬性,python認為用戶在訪問對象的屬性的時候是明確自己在做什么的,因此認為私有數(shù)據(jù)不是必須的,但是如果你必須實現(xiàn)數(shù)據(jù)隱藏,也是可以的,具體方法就是在變量名前加雙下劃線。但即使對于隱藏的數(shù)據(jù),也是有一定的方法可以訪問的。Python對于私有變量會進行Namemangling是Python中為了方便定義私有的變量和方法,防止和繼承類以及其他外部的變量或者方法沖突而采取的一種機制。Namemanglingclass PrivateTest: __myownedata=12 def __myownmethod(self): printcan you see me? def sayhi(self): printsay hiclass subPrivateTest(PrivateTest): passTraceback(most recent call last):Filepyshell5, line 1, in moduleAttributeError:class subPrivateTest has no attribute 39。與__init__不同,__new__實際是個類方法,以cls作為第一個參數(shù)。利用new創(chuàng)建一個類的對象的最常用的方法為:super(currentclass,cls).__new__(cls[, ...])class A(object): def __new__(cls): Object = super(A,cls).__new__(cls) print in New return Object def __init__(self): print in initclass B(A): def __init__(self): print in B39。Python由于具有垃圾回收機制,通常不需要用戶顯示的去調用析構函數(shù),即使調用,實例也不會立即釋放,而是到該實例對象所有的引用都被清除掉后才會執(zhí)行。initialized39。 綁定與非綁定在前面的例子中我們討論過類的實例方法必須通過實例調用,如果直接通過類去訪問會拋出異常,這種通過實例來訪問方法就叫綁定,調用的時候不需要顯示傳入self參數(shù),而調用非綁定方法需要顯示傳入self參數(shù),比如當子類繼承父類定義構造函數(shù)的時候,需要顯示調用父類的構造函數(shù),但此時該方法并未與任何實例綁定,(self)。它沒有常規(guī)方法那樣的特殊行為(綁定、非綁定、默認的第一個參數(shù)規(guī)則等等)。任何時候定義靜態(tài)方法都不是必須的(靜態(tài)方法能實現(xiàn)的功能都可以通過定義一個普通函數(shù)來實現(xiàn))3. Python中的繼承子類會繼承父類的所有的屬性和方法,子類也可以覆蓋父類同名的變量和方法。如下列:class A:defsayhi(self):print39。class B:defsayhi(self):print39。class C(A,B):passd=C()()Iam A hi(d)Iam B Hi(d).而在python引入新式類后,在繼承關系中,方法和屬性的搜索有所改變,使用C3算法。關于繼承的構造函數(shù):1. 如果子類沒有定義自己的構造函數(shù),父類的構造函數(shù)會被默認調用,但是此時如果要實例化子類的對象,則只能傳入父類的構造函數(shù)對應的參數(shù),否則會出錯classAddrBookEntry(object):39。def__init__(self, nm, ph):= nm= phprint39。, defupdatePhone(self, newph): = newphprint39。, classEmplAddrBookEntry(AddrBookEntry):39。defupdateEmail(self, newem):= newemprint39。, john= EmplAddrBookEntry(39。, 39。)2. 如果子類定義了自己的構造函數(shù),而沒有顯示調用父類的構造函數(shù),則父類的屬性不會被初始化classAddrBookEntry(object):39。def__init__(self, nm, ph):= nm= phprint39。, defupdatePhone(self, newph): = newphprint39。, classEmplAddrBookEntry(AddrBookEntry):39。def__init__(self, nm, ph, id, em):(self, nm,ph)= id= emdefupdateEmail(self, newem):= newemprint39。, john= EmplAddrBookEntry(39。, 39。,42, 39。)輸出:john42Traceback(most recent call last):AttributeError:39。 object has no attribute 39。3. 如果子類定義了自己的構造函數(shù),顯示調用父類,子類和父類的屬性都會被初始化classAddrBookEntry(object):39。def__init__(self, nm, ph):= nm= phprint39。, defupdatePhone(self, newph): = newphprint39。, classEmplAddrBookEntry(AddrBookEntry):39。def__init__(self, nm, ph, id, em):(self, nm,ph)= id= emdefupdateEmail(self, newem):= newemprint39。, john= EmplAddrBookEntry(39。, 39。,42, 39。)在引入新型類之前,MRO比較簡單,采取自左到右,深度優(yōu)先的原則。算法描述:假設C1C2..CN表示類節(jié)點[C1,C2,...CN);head=C1;tail=C2...CNC+(C1 C2
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1