当前位置: 移动技术网 > IT编程>软件设计>面向对象 > python类的继承

python类的继承

2018年03月22日  | 移动技术网IT编程  | 我要评论

这里只有干巴巴的货物

底层实现,我希望您理解内存地址,通多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方法中,是将内存地址传入,而不是传入一个值,这样可以使两个方法产生关联性

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网