欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python类的继承

程序员文章站 2022-03-26 21:46:46
这里只有干巴巴的货物 底层实现,我希望您理解内存地址,通多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方法中,是将内存地址传入,而不是传入一个值,这样可以使两个方法产生关联性