python第5節課 繼承 異常 方法

2021-08-20 11:43:35 字數 2925 閱讀 2928

#繼承 子類繼承父類,子類可以繼承乙個父類還有父類的妻子小妾們 ,子類可以使用父類的屬性和方法

#父類a

class

a():

def

__init__(self,name=none,age=none):

self.name=name

self.age=age

def default(self):

print("呼叫父類a方法default",self.name,self.age)

#父類c

class c():

def default(self):

print("呼叫小妾方法")

#子類b 可以有多個子類繼承乙個父類

class b(a,c): #如果呼叫的父類引數方法名一樣會按照順序從前往後呼叫(爹最大)

__phone=12345678999

date="this is date"

numbernoe = none

def

__init__(self,me=none,name=none,age=none):#初始化方法_init_

self.me=me#給屬性復值

#(1)給父類復值

#self.name=name

#self.age=age

# (2)給父類屬性復值

#a.name=name

#a.age=age

#(3)給父類屬性復值

a.__init__(self,name,age)

#(4)給父類方法復值

#super(b,self).__init__(name,age)

# 單例模式 (只有乙個例項)

# @classmethod

# def __new__(cls, *args, **kwargs):#構造方法例項化物件

# if cls.numbernoe==none:

# cls.numbernoe=object.__new__(cls)

# return cls.numbernoe

# else:

# return cls.numbernoe

# 測試列印父類屬性

def prints(self):

print("列印:",self.me,self.name,self.age,self.__phone,"

\t",end="")

#按照順序呼叫父類a的方法

super().default()

def default(self):

print("這是子類重寫父類方法")

#普通方法 self呼叫例項屬性

def methods(self,name):

print(self.date,name)

#類方法 也可通過類名呼叫 cls訪問類屬性

@classmethod

def classs(cls,name):

print(cls.date,name)

#靜態方法 也可通過類名呼叫 不可以訪問,通過傳值的方式

@staticmethod

def statics(name):

print(name)

#排序規則 或用__gt__

def

__lt__(self,other):

#gbk 按照拼音首字母排序

#return self.name.encode("gbk") < other.name.encode("gbk")

return

self.age "ss","zhazi",68)

ccc=b("aa","dui",58)

ccc.prints()#子類列印 按順序呼叫最開始的父類方法

ccc.default()#子類重寫父類方法

print("檢視物件有幾個引用",sys.getrefcount(ccc))

print("擦看引用是否相同肯定相同啊",id(abc)==id(ccc))

列印結果:

列印: aa dui 58 12345678999     呼叫父類a方法default dui 58

這是子類重寫父類方法

檢視物件有幾個引用 2

擦看引用是否相同肯定相同啊 false(去掉注釋為true)

#方法的區別

cas=b()

cas.date="this is new"

cas.methods("普通方法")

cas.classs("類方法")

cas.statics("靜態方法")

列印:this is new 普通方法

this is date 類方法

靜態方法

#方法排序 關閉單例 建立好多例項

lists=[b("傻子","男",58),b("二傻子","女",38),b("大傻子","男",88)]

lists.sort()

for i in lists:

print(i.age)

列印:38 58 88

#異常處理 詳情翻看python異常大全

def zrrors():

try:

1/0except

zerodivisionerror

as ss: #as 給實體類取別名

print("除數不能為0")

raise

exception(ss) # raise引發異常

except

exception

as ss:

print("最大的異常處理exception",ss)

else:

print("沒有異常執行")

finally:

print("執行完畢必須執行")

zrrors()

第13 1節 關於Python的異常處理

python的異常網上有很多資料介紹,老猿就不再細說,在這裡老猿只挑幾件老猿認為重要的內容介紹一下。一 異常處理完整語法 異常處理的完整語法語法如下 try except 異常1,異常n as e 異常處理 1 except 異常k,異常l as e 異常處理 1 else 無異常時的正常 fina...

Python開發 第5節 函式基礎

函式的本質就是功能的封裝。函式的作用 def 函式名 引數 函式文件 函式功能 函式功能 呼叫函式 函式名 引數 形參 宣告函式時 中的引數是形參 形參只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。...

慕課筆記 U4 多型 第5節 UML簡介

第5節 uml簡介 1 uml概念 unified modeling language uml 又稱統一建模語言或標準建模語言,是乙個支援模型化和軟體系統開發的圖形化語言,為軟體開發的所有階段提供模型化和視覺化支援。2 uml圖示 uml2.2中一共定義了14種圖示 diagrams 3 常用uml...