前言

编写类时,并非总是要从空白开始。如果要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。当子类存在和父类一样的属性时,使用super() 函数用于调用父类。

目录

  • 前言
  • 小游戏

小游戏

import random as r
from matplotlib import pyplot as plt
def randdirection():a = r.random()if a>0.5:return 1else:return -1
class fish:def __init__(self, name,x,y):self.name = nameself.x=xself.y=ydef move(self):if self.x<=0:self.x+=1elif self.x>=5:self.x-=1else:self.x -= randdirection()if self.y <= 0:self.y += 1elif self.y>=5:self.y-=1else:self.y -= randdirection()def getlocation(self):t=[self.x,self.y]return t
class Goldfish(fish):pass
class Carp(fish):pass
class Salmon(fish):pass
class Shark(fish):def __init__(self,name,x,y,cond):super().__init__(name,x,y)self.hungry=conddef eat(self):if self.hungry:print("吃货的梦想就是天天有的吃 ლ(´ڡ`ლ)好吃的.")self.hungry=0return 1else:print("太撑了,吃不下了!Zzzzzz")self.hungry = 1return 0
fish=fish('鱼儿A',r.randint(1,5),r.randint(1,5))
goldfish=Goldfish('金枪鱼',r.randint(1,5),r.randint(1,5))
shark=Shark('鲨鱼',r.randint(1,5),r.randint(1,5),1)
flaga=0
flagb=0
for i in range(300):plt.clf()plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签plt.rcParams['axes.unicode_minus'] = Falseplt.title('大鱼吃小鱼')plt.xlim(0,5)plt.ylim(0,5)fish.move()goldfish.move()shark.move()t=[]t.append(fish.getlocation())t.append(goldfish.getlocation())t.append(shark.getlocation())#print(t)_x=[t[0][0],t[1][0],t[2][0]]_y=[t[0][1],t[1][1],t[2][1]]plt.scatter(_x, _y, s=[20, 80, 400], c=[0.2, 0.4, 0.7])if t[0][0]==t[2][0] and t[0][1]==t[2][1] and shark.eat():flaga+=1print('鱼儿A第{}次被鲨鱼吃掉了!'.format(flaga))plt.savefig('鱼儿A第{}次被鲨鱼吃掉了.jpg'.format(flaga))if t[1][0]==t[2][0] and t[1][1]==t[2][1] and shark.eat():flagb+=1print('金枪鱼第{}次被鲨鱼吃掉了!'.format(flagb))plt.savefig('金枪鱼第{}次被鲨鱼吃掉了.jpg'.format(flagb))if i==1:plt.savefig('大鱼吃小鱼.jpg')t.clear()plt.pause(0.01)
if flagb==0 and flaga==0:print('(╥╯^╰╥)鲨鱼,没吃到鱼(T▽T)')

输出结果为:


刚开始鱼的位置:

金枪鱼第1次被鲨鱼吃掉了

鱼儿A第1次被鲨鱼吃掉了

Python面向对象设计:对象与类,继承————以大鱼吃小鱼为例相关推荐

  1. 十二. python面向对象主动调用其他类

    一 .python面向对象主动调用其他类成员 (看代码) 主动调用 其他类的成员# 没有继承 的主动调用 class Grad(object):bar=555555def __init__(self, ...

  2. 【JAVA SE】第六章 面向对象、对象和类以及封装

    第六章 面向对象.对象和类以及封装 文章目录 第六章 面向对象.对象和类以及封装 一.面向对象 1.概念 2.面向对象的三大特征 二.对象和类 1.基本概念 2.Java中的对象 3.Java 中的类 ...

  3. 笔记35 笨办法学python练习42对象、类、从属关系和部件关系

    笔记35 笨办法学python练习42对象.类.从属关系和部件关系 一.类.对象与从属关系 这个练习是一个有点哲学意味的练习,讨论对象和类的关系,也就是从属关系.对象不就是下属于某个类的子类,或者个体 ...

  4. python 面向对象之封装与类与对象

    封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...

  5. 面向对象设计:共性VS个性-------继承的粒度和聚合的粒度以及类的重构

    共性和个性 依据面向对象的原理.类是对象的抽象.也就是说.类是一系列的既有共性又有个性的对象的高度概括,类的属性和方法代表了隶属于该类的全部对象的共性,类的每一个对象实例都能够有不同的属性值,这反映了 ...

  6. Python 精选笔试面试习题—类继承、方法对象、包管理、闭包、可变类型作为默认参数、列表引用、sort与sorted、 append 和 extend、深拷贝和浅拷贝

    1. 类继承 如下代码 class A(object):def show(self):print 'This is calss A'class B(A):def show(self):print 'T ...

  7. python面向对象三大特性、类的约束、print带颜色输出及super补充

    面向对象三大特性.类的约束.print带颜色输出及super补充 简述: python面向对象的三大特性: 1.继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为 ...

  8. Python - 面向对象编程 - 三大特性之继承

    继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...

  9. 【“笨办法”学Python】42.对象、类及从属关系——类即是对象

    42.对象.类及从属关系--类即是对象 文章目录 前言 一.鱼和泥鳅有什么区别? 二.小丽和泥鳅有什么区别? 三.代码测试 四.super(Employee, self).\_\_init\_\_(n ...

最新文章

  1. mysql e 导出数据库_mysql导出数据库几种方法
  2. vim的模式及常用命令
  3. Vue UI 框架对比 element VS iview
  4. 放弃耳机孔、放弃按键的手机我们是怎么接受并习惯的?
  5. 《南溪的目标检测学习笔记》——夏侯南溪的CNN调参笔记,加油
  6. MacBook Pro 16英寸样机模型正面视图psd素材
  7. win10taskkill强行结束进程_win10系统强制结束进程命令的方案
  8. 烧菜的基本技巧 来自d版
  9. python精通要数学好_深度学习需要多强的数学基础?
  10. cblas_sgemm和cublasSgemm参数详解
  11. 我的世界java村民繁殖_教程/村民养殖 - Minecraft Wiki,最详细的官方我的世界百科...
  12. 云原生yaml部署harbor
  13. 解决Win7缺失MSVCR120.DLL问题
  14. 偏财入财库大富_偏财入库无人不富是什么意思
  15. Centos8.3 nfs-ganesha使用ceph后端
  16. MySQL 8.0安装教程
  17. 笔记 -- 电磁学基础2
  18. 国信证券学习系列(1)
  19. 水经注,bigemap 功能对比
  20. TA游戏推荐:黑暗画风3D动作游戏《恐惧之魂》

热门文章

  1. 手机吃鸡登显示服务器繁忙,吃鸡一直登不上显示服务器繁忙是什么情况 | 手游网游页游攻略大全...
  2. rockplayer_ffmpeg在AOSP中的编译
  3. JS动态模拟Form表单提交数据
  4. Element组件MessageBox剖析
  5. 上周热点回顾(8.21-8.27)
  6. 2017福州大学面向对象程序设计寒假作业四
  7. IOS 字符串转日期
  8. php做转发,php实现URL转发代码的方法
  9. PLM平台过程控制方案
  10. LeetCode题解PDF百度网盘下载