python继承示例

python继承示例,第1张

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

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存