import random as r
class Fish:
def init(self):
self.x=r.randint(0,10)
self.y=r.randint(0,10)
def move(self):
#假设鱼都是一路向西游
self.x -=1
print(‘我的位置是:’,self.x,self.y)
class Goldfish(Fish):
pass
class Carp(Fish):
pass
class Salmon(Fish):
pass
class Shark(Fish):
def init(self):
self.huangry=True
def eat(self):
if self.huangry:
print(‘吃货的梦想就是天天有得吃♀♂^ˇ’)
self.huangry=False
else:
print(‘太撑了,吃不下’)
fish =Fish()
fish.move()
goldfish=Goldfish()
goldfish.move()
goldfish.move()
goldfish.move()
shark=Shark()
shark.eat()
shark.eat()
总结:这是一道很有意思的题目,在练习过程中,用简单 的代码赋予程序活力,既能回顾知识还能增加趣味性。这里的shark.move是执行不了的,因为其中已经重新定义了_init_,没有初始化鲨鱼的坐标。如果需要解决此问题,需要在鲨鱼类中重写—init—的方法的时候先调用基类Fish的—init—方法。
解决技术,调用未绑定的父类方法,
使用super 函数
类和对象,小游戏鱼的子类继承父类,一路向西游
最新推荐文章于 2022-08-31 17:05:19 发布
