您的位置:澳门新葡8455最新网站 > 编程教学 > python2和3中关于类继承的

python2和3中关于类继承的

发布时间:2019-11-14 16:55编辑:编程教学浏览(119)

    下边举二个例证,一样的代码应用 python2 和 python3 写的,大家瞩目两段程序中原野绿加粗的部分:

    python2的类世襲使用super方法:

     1 #-*-  coding:utf-8 -*-
     2 '''
     3 Created on 2018年8月27日
     4 
     5 @author: anyd
     6 '''
     7 import random as r
     8 
     9 class Fish(object):
    10     def __init__(self):
    11         self.x = r.randint(0, 10)
    12         self.y = r.randint(0, 10)
    13             
    14     def move(self):
    15         #这里主要演示类的继承机制,就不考虑检查场景边界和移动方向的问题
    16         #假设所有鱼都是一路向西游
    17         self.x -= 1
    18         print "我的位置是:", self.x, self.y
    19 
    20 class Goldfish(Fish):
    21     pass
    22 
    23 class Carp(Fish):
    24     pass
    25 
    26 class Salmon(Fish):
    27     pass
    28 
    29 #上边几个都是食物,食物不需要有个性,所以直接继承Fish类的全部属性和方法即可
    30 #下边定义鲨鱼类,这个是吃货,除了继承Fish类的属性和方法,还要添加一个吃的方法
    31 
    32 class Shark(Fish):
    33     def __init__(self):
    34         super(Shark,self).__init__()       
    35         self.hungry = True
    36 
    37     def eat(self):
    38         if self.hungry:
    39             print "吃货的梦想就是天天有的吃^_^"
    40             self.hungry = False
    41         else:
    42             print "太撑了,吃不下了!"
    43             
    44 aa = Shark()
    45 aa.move()
    

    出口如下:

    我的位置是: 8 2
    

      

    python3的类世袭使用super方法:

     1 #-*-  coding:utf-8 -*-
     2 '''
     3 Created on 2018年8月27日
     4 
     5 @author: anyd
     6 '''
     7 import random as r
     8 
     9 class Fish(object):
    10     def __init__(self):
    11         self.x = r.randint(0, 10)
    12         self.y = r.randint(0, 10)
    13             
    14     def move(self):
    15         #这里主要演示类的继承机制,就不考虑检查场景边界和移动方向的问题
    16         #假设所有鱼都是一路向西游
    17         self.x -= 1
    18         print ("我的位置是:", self.x, self.y)
    19 
    20 class Goldfish(Fish):
    21     pass
    22 
    23 class Carp(Fish):
    24     pass
    25 
    26 class Salmon(Fish):
    27     pass
    28 
    29 #上边几个都是食物,食物不需要有个性,所以直接继承Fish类的全部属性和方法即可
    30 #下边定义鲨鱼类,这个是吃货,除了继承Fish类的属性和方法,还要添加一个吃的方法
    31 
    32 class Shark(Fish):
    33     def __init__(self):
    34         super().__init__()       
    35         self.hungry = True
    36 
    37     def eat(self):
    38         if self.hungry:
    39             print ("吃货的梦想就是天天有的吃^_^")
    40             self.hungry = False
    41         else:
    42             print ("太撑了,吃不下了!")
    43             
    44 aa = Shark()
    45 aa.move()
    

    出口如下:

    我的位置是: 7 4
    

      

    super方法具体运用注意事项能够参见官方的辅导文书档案,里面有详尽的利用例子,但个人认为这种super方法不太轻松令人看得舒性格很顽强在艰难困苦或巨大压力面前不屈,个人相比偏幸利用未绑定的点子来写,那样就不管是python2 依然python3,都是绝非难点的。如下:

    1 class Shark(Fish):
    2     def __init__(self):
    3         Fish.__init__(self)     
    4         self.hungry = True
    

     

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:python2和3中关于类继承的

    关键词:

上一篇:没有了

下一篇:没有了