這裡只有乾巴巴的貨物 底層實現,我希望您理解記憶體地址,通多DeBug調試可以查看編譯器如何實現定址操作。可以幫助你理解為什麼是這樣的 ...
這裡只有乾巴巴的貨物
底層實現,我希望您理解記憶體地址,通多DeBug調試可以查看編譯器如何實現定址操作。可以幫助你理解為什麼是這樣的
1 #python class繼承,多繼承 2 3 class mail(object): #多繼承需要採用class mail(object)新式類定義方式實現 4 def __init__(self, name, location): 5 self.name = name 6 self.loct = location 7 def writ_name(self): 8 print("My name is %s" % self.name) 9 def writ_lct(self): 10 print("My location is %s" % self.age) 11 12 class secret(object): 13 def sct_hash(self): 14 print("需要發送加密郵件嗎?") 15 16 class comly_mail(mail,secret): 17 ''' 18 多繼承:繼承的父類會由左向右,一次繼承構造 19 第一個繼承的父類無構造函數,則會找下一個父類的構造函數 20 第一個繼承的父類有構造函數,那麼在實例化子類時就要傳相應多的參數 21 需要多傳參數時,就需要重構父類 22 ''' 23 def __init__(self,name,location,destined): 24 ''' 25 重構父類 26 mail.__init__(self,name,location) 指定需要重構的父類 27 可以將所有父類重構,重構會影響多繼承, 28 如果要重構多個父類建議使用上面的指定父類重構 29 ''' 30 super(comly_mail,self).__init__(name,location) 31 self.dtd = destined 32 def envelope(self): 33 print("這是一封紙質郵件,發件人是:%s"%self.name) 34 def writ_name(self): 35 ''' 36 重構父類的方法 37 這裡重構父類方法時會調用父類方法。父類方法中的內容會被列印出來 38 ''' 39 mail.writ_name(self) 40 print("信封上寫著我的名字:%s"%self.name) 41 def wrt_dtd(self): 42 print("郵件的目的地址是:%s"%self.dtd) 43 def sand_e_elp(self,obj): 44 print("發一封紙質郵件地址:%s,發一封電子郵件地址:%s"%(self.loct,obj.loct)) 45 46 class Email(mail): 47 def sandEmail(self): 48 print("發送一封Email,發件人:%s,Email地址:%s"%(self.name,self.loct)) 49 50 sendmail = comly_mail('sober','廣州','烏魯木齊') 51 sendmail.writ_name() 52 sendmail.envelope() 53 sendmail.sct_hash() 54 sendmail.wrt_dtd() 55 56 sEmail = Email("jack","[email protected]") 57 sEmail.sandEmail() 58 59 sendmail.sand_e_elp(sEmail) 60 #這裡將sEmail實例傳入sandmail實例的send_e_elp方法中,是將記憶體地址傳入,而不是傳入一個值,這樣可以使兩個方法產生關聯性