• python类的继承


    这里只有干巴巴的货物

    底层实现,我希望您理解内存地址,通多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方法中,是将内存地址传入,而不是传入一个值,这样可以使两个方法产生关联性
  • 相关阅读:
    ScrollView 字典
    centos 6.x 安装redis
    Linux 添加epel源
    Linux 关于解压
    Linux 删除文件夹
    Linux sz rz
    让div 实现 input效果
    解决js浮点数计算bug
    键盘绑定事件和焦点处理
    npm的镜像替换成淘宝
  • 原文地址:https://www.cnblogs.com/shangmo/p/8620449.html
Copyright © 2020-2023  润新知