python继承示例

介绍

时钟日历类继承

网络上没有很多关于继承的好例子。它们要么极其简单和人工,要么过于复杂。我们希望通过提供一个示例来缩小差距,该示例一方面更现实 - 但仍然不现实 - 另一方面又足够简单以查看和理解继承的基本方面。在上一章中,我们正式介绍了继承。

为此,我们定义了两个基类:一个是时钟的实现,另一个是日历的实现。基于这两个类,我们定义了一个 CalendarClock 类,它继承自 Calendar 类和 Clock 类。

时钟类

 时钟对象):
    def  __init__ (自我,小时= 0 , 分钟= 0 , 秒= 0 ):
        自我__hours  = 小时
        自我__ 分钟= 分钟
        自我__seconds  =  seconds 
    def  set ( self , hours ,  minutes ,  seconds = 0 ): 
        self .__hours  = 小时
        自我__ 分钟= 分钟
        自我__seconds  =  seconds 
    def  tick ( self ): 
        """
        如果 self ,时间将提前一秒 """ __seconds  ==  59 :
            自我__seconds  =  0 
            if  ( self . __minutes  ==  59 ): 
                self . __ 分钟 =  0
                自我__小时 =  0 如果 自我__hours == 23   else  self __小时 +  1
            其他:
                自我__分钟 +=  1 ; 
        其他:
            自我__秒 +=  1 ; 
    def  display ( self ): 
        print ( " %d : %d : %d "  %  ( self . __hours ,  self . __minutes ,  self . __seconds)) 
    def  __str__ ( self ): 
        return  " %2d : %2d : %2d "  %  ( self . __hours ,  self . __minutes ,  self . __seconds ) 
x  =  Clock () 
print ( x ) 
for  i  in  range ( 10000 ): 
    × 打勾()
打印( x )

输出:

 0:0:0
 2:46:40

日历类

 日历对象):
    月 =  (31 ,28 ,31 ,30 ,31 ,30 ,31 ,31 ,30 ,31 ,30 ,31 )
    高清 __init__ (自我, 日= 1 , 月= 1 , 年= 1900 ) :
        自己__day  = 一天
        自我__month  = 月
        自我__year  =DEF  leapyear (自,ÿ ):
        如果 Ý   4 :
	   #不是闰年
           返回 0 ; 
        否则如果 y  %  100 :
               返回 1 ;
           其他如果 y  %  400 :
                  返回 0
               其他返回 1 ;
    def  set ( self ,  day, 月, 年): 
        self __day  = 一天
        自我__month  = 月
        自我__year  =DEF 得到():
        返回 (自我, 自我__day , 自我__month , 自我__year )
    DEF 前进(个体经营):
        月 = 日历月
        max_day  = 月[自我__month - 1 ]
        如果 自我__month  ==  2 : 
            max_days  +=  self 闰年( self . __year )
        如果 self . __day  ==  max_days : 
            self __day  =  1 
            if  ( self . __month  ==  12 ): 
                self . __month  =  1 
                self __年 +=  1
            其他:
                自我__month  +=  1 
        else : 
            self __day  +=  1 
    def  __str__ ( self ): 
       return  str ( self . __day ) + "/" +  str ( self . __month ) +  "/" +  str ( self . __year ) 
if  __name__  ==  "__main__" : 
   x  =  Calendar ()
   打印( x ) 
   x 提前()
   打印( x )

输出:

1/1/1900
2/1/1900

日历时钟类

from  clock1  import  Clock 
from  calendar  import  Calendar 
class  CalendarClock ( Clock ,  Calendar ): 
   def  __init__ ( self ,  day , month , year , hours = 0 ,  minutes = 0 , seconds = 0 ): 
        Calendar __init__ ( self ,  day ,  month ,  year )
        时钟. __init__ ( self ,  hours ,  minutes ,  seconds ) 
   def  __str__ ( self ):
       返回 日历__str__ ( self )  +  ", "  + 时钟__str__ (自)
如果 __name__   ==  “__main__” :
   X  =  CalendarClock (24 ,12 ,57 )
   的打印(X )
    范围(1000 ):
      X 范围内i打勾() 
   ( 1000 ): x 提前()打印( x )   
      
   

输出:

 0:0:0
 2:46:40

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值