python类的继承
程序员文章站
2022-06-28 19:23:05
这里只有干巴巴的货物 底层实现,我希望您理解内存地址,通多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","12345678@qq.com") 57 sEmail.sandEmail() 58 59 sendmail.sand_e_elp(sEmail) 60 #这里将sEmail实例传入sandmail实例的send_e_elp方法中,是将内存地址传入,而不是传入一个值,这样可以使两个方法产生关联性