类和对象,小游戏鱼的子类继承父类,一路向西游

本文通过一个生动的例子展示了Python面向对象编程的基本概念和技巧。通过创建不同类型的鱼的类,如金鱼、鲤鱼、鲑鱼和鲨鱼,演示了继承、方法重写和多态等OOP特性。特别关注了鲨鱼类的特殊行为和如何解决初始化问题。

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 函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值