您的位置:威尼斯官方网站 > 威尼斯正规官网 > 出口如下

出口如下

发布时间:2019-11-06 21:41编辑:威尼斯正规官网浏览(90)

    上面举一个例子,相符的代码应用 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
    

     

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:出口如下

    关键词: