bird

Python学习06.14:Python父类方法重写(入门必读)

為{幸葍}努か 提交于 2020-02-26 04:09:15
前面讲过在 Python 中,子类继承了父类,那么子类就拥有了父类所有的类变量和类函数。通常情况下,子类会在此基础上,扩展一些新的类变量和类函数。 但凡事都有例外,我们可能会遇到这样一种情况,即子类从父类继承得来的类函数中,大部分是适合子类使用的,但有个别的类函数,并不能直接照搬父类的,如果不对这部分类函数进行修改,子类对象无法使用。针对这种情况,我们就需要在子类中重复父类的函数。 举个例子,鸟通常是有翅膀的,也会飞,因此我们可以像如下这样定义个和鸟相关的类: class Bird: # 鸟有翅膀 def isWing(self): print("鸟有翅膀") #鸟会飞 def fly(self): print("鸟会飞") 但是,对于鸵鸟来说,它虽然也属于鸟类,也有翅膀,但是它只会奔跑,并不会飞。针对这种情况,可以这样定义鸵鸟类: class Ostrich(Bird): # 重写Bird类的fly()函数 def fly(self): print("鸵鸟不会飞") 可以看到,因为 Ostrich 继承自 Bird,因此 Ostrich 类拥有 Bird 类的 isWing() 和 fly() 函数。其中,isWing() 方法同样适合 Ostrich,但 fly() 明显不适合,因此我们在 Ostrich 类中对 fly() 方法进行重写。 重写,有时又称覆盖,是一个意思

final关键字

僤鯓⒐⒋嵵緔 提交于 2020-02-17 06:47:30
final关键字可以修饰类,方法,变量 final修饰的变量称为常量 变量–>成员变量和局部变量 final修饰成员变量,通常与static一起使用,称为静态常量 static说明PI的使用需要使用类名. Math.PI final说明PI的值在整个程序的运行过程其值不允许改变 final修饰的局部变量称为常量 变量–>基本数据类型和引用数据类型 final修饰的基本数据类型,其值不允许更改 final修饰的引用数据类型, 其地址不允许更改 public class Test4 { public static void main ( String [ ] args ) { final double PI = 3.14 ; //PI=3.15;编译报错 final Bird bird = new Bird ( 2 , "红色" ) ; //bird存储的是内存地址\ // bird=new Bird(3,"绿色");//修改内存地址编译报错 bird . setColor ( "绿色" ) ; //没有修改地址,而修改的是堆中的属性值 //调用show方法 show ( bird ) ; //方法传参,只传地址,不传修饰符 final } public static void show ( Bird b ) { //show方法中Bird b并没有使用final修饰 b = new

Flappy Bird

感情迁移 提交于 2020-02-04 17:48:37
在网上学习了下“65行 JavaScript 代码实现 Flappy Bird 游戏”( http://blog.jobbole.com/61842/ ),main.js 如下: // Initialize Phaser, and creates a 400x490px game var game = new Phaser.Game(400, 490, Phaser.AUTO, 'game_div'); // Creates a new 'main' state that wil contain the game var main_state = { preload:function() { this.game.stage.backgroundColor = '#71c5cf'; this.game.load.image('bird','assets/bird.png'); this.game.load.image('pipe','assets/pipe.png'); }, create:function() { this.bird = this.game.add.sprite(100,245,'bird'); this.bird.body.gravity.y = 1000; this.pipes = game.add.group(); this.pipes

python 父类方法重写

限于喜欢 提交于 2020-01-22 19:26:10
class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Ostrich(Bird): def fly(self): print("鸵鸟不会飞") ostrich = Ostrich() ostrich.fly() 鸵鸟不会飞 如何调用被重写的方法 事实上,如果我们在子类中重写了从父类继承来的类方法,那么当在类的外部通过子类对象调用该方法时,python总是会执行子类中的重写的方法。 class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Ostrich(Bird): def fly(self): print("鸵鸟不会飞") ostrich = Ostrich() #调用 Bird 类中的 fly() 方法 Bird.fly(ostrich) #通过类名调用实例方法的这种方式,又被称为未绑定方法。 鸟会飞 注意:使用类名调用其类方法,python不会为该方法的第一个self参数自动绑定值,因此采用这种调用方法,需要手动为self参数赋值。 来源: https://www.cnblogs.com/xiaobaizzz/p/12229354.html

高精地图中地面标识识别技术历程与实践

◇◆丶佛笑我妖孽 提交于 2020-01-07 01:43:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 简介: 本文将主要介绍高德在高精地图地面标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求,为高德地图构建高精度地图提供了基础的技术保证。 导读:本文将主要介绍高德在高精地图地面标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求,为高德地图构建高精度地图提供了基础的技术保证。 1.面标识识别 地面标识识别,指在地图道路中识别出各种类型的地面标识元素,如地面箭头、地面文字、时间、地面数字、减速带、车距确认线、减速丘、人行横道、停止让行线、减速让行线等。这些自动化识别结果将作为生产数据交付给地图生产产线,经过制作后演变成服务于自动驾驶、车载导航、移动导航的地图。 高精地图一般对各个地图要素精度至少有着厘米级的要求,所以相对于普通地图来说需要更高的位置精度,这也是与普通地图识别的最大不同,所以探索如何将地面标识识别得又全又准是我们一直努力的方向。 地面标识识别有两大难点:一是地面标识本身的种类、大小繁多,二是地面标识易被磨损遮挡,清晰度参差不齐,这给高精度识别带来了巨大的挑战。 1)地面标识种类繁多 :实际场景中地面标识种类繁多,在内容、颜色、形状、尺寸等方面均有不同分布。 颜色:比如黄色、红色、白色等 形状:箭头形、各种文字数字形状、条形、多条形、面状、丘状等 尺寸

harry -小鸟管道游戏终极版

时光总嘲笑我的痴心妄想 提交于 2019-12-28 02:52:32
import sys import pygame # 小鸟类 class Bird ( ) : def __init__ ( self ) : self . birdRect = pygame . Rect ( 65 , 50 , 50 , 50 ) self . birdStatus = [ pygame . image . load ( "assets/0.png" ) , pygame . image . load ( "assets/1.png" ) , pygame . image . load ( "assets/2.png" ) ] self . status = 0 self . birdX = 120 self . birdY = 350 self . jump = False self . jumpSpeed = 10 # 按一下空格键跳跃的高度 self . gravity = 5 # 不按空格键小鸟下降的速度 self . dead = False def birdUpdate ( self ) : if self . jump : self . jumpSpeed -= 1 # 跳跃高度速度减一 self . birdY -= self . jumpSpeed # 改变小鸟高度 else : self . gravity += 0.2 #

用原生js写小游戏--Flappy Bird

跟風遠走 提交于 2019-12-16 09:50:29
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> body { margin: 0; padding: 0; } #game { width: 800px; height: 600px; border: 1px solid #000; background: url(images/sky.png); overflow: hidden; position: relative; } #game .pipeD { background: url(images/pipe1.png) top center; position: absolute; } #game .pipeU { background: url(images/pipe2.png) bottom center; position: absolute; } #bird { width: 34px; height: 25px; /* border-radius: 10px; background-color: red;*/ position: absolute; top: 100px; left: 100px; background: url(images/birds.png)

C#.Net之窗体应用程序飞行的小鸟[]flappybird](实现小鸟碰撞+加分)

女生的网名这么多〃 提交于 2019-12-09 12:56:43
实现小鸟碰撞和加分 设计界面如下: using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . Data ; using System . Drawing ; using System . Linq ; using System . Media ; using System . Text ; using System . Threading . Tasks ; using System . Windows . Forms ; namespace fly_bird { public partial class Form1 : Form { public Form1 ( ) { InitializeComponent ( ) ; } //创建游戏区 Panel bg = new Panel ( ) ; //创建管子 Timer greatguan = new Timer ( ) ; //创建鸟 PictureBox bird = new PictureBox ( ) ; //创建鸟飞计时器 Timer fly = new Timer ( ) ; //创建鸟移动动画 Timer birdfly = new Timer ( ) ; //记录鸟的图片

《JAVA核心知识》学习笔记(5. JAVA 基础)-4

六月ゝ 毕业季﹏ 提交于 2019-12-09 12:15:07
5.1.1. JAVA 异常分类及处理 5.1.1.1. 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下 会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用 这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器 Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 Exception Error 1. Error 类是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果 出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。 Exception(RuntimeException、 CheckedException) 2. Exception 又 有 两 个 分 支 , 一 个 是 运 行 时 异 常 RuntimeException , 一 个 是 CheckedException。 RuntimeException 如 : NullPointerException 、 ClassCastException ; 一 个 是 检 查 异 常 CheckedException,如 I/O 错误导致的 IOException、 SQLException。 RuntimeException 是 那些可能在 Java

设计模式--装饰器模式

╄→尐↘猪︶ㄣ 提交于 2019-12-04 20:21:37
装饰器模式--装饰模式 1、装饰模式 装饰模式: 动态的给对象添加一些额外的职责,例如,给相片加各种不同的相框(相框就是装饰器)。 2、装饰模式的结构 角色 抽象组件(Component): 抽象组件定义了需要进行装饰的方法,也就是“被装饰者”角色; 具体组件(ConcreteComponent): 具体组件是抽象主件的一个子类; 装饰(Decorator): 装饰是抽象组件的一个子类,是"装饰者"角色,其作用是装饰具体组件,因此”装饰“角色需要包含”被装饰者“的引用,它可以是抽象类,也可以是非抽象类; 具体装饰(ConcreteDecorator): 具体装饰是”装饰“角色的一个非抽象子类。 类图     3、装饰模式举例 问题:给麻雀安装智能电子翅膀 抽象组件: Bird.java 1 package com.nick.pattern.decorator; 2 /** 3 * 抽象组件(被装饰者) 4 * 定义一个接口,接口中包括需要被装饰的一个抽象方法 5 * @author nick 6 */ 7 public interface Bird { 8 public abstract int fly(); 9 } 具体组件:Sparrow.java 1 package com.nick.pattern.decorator; 2 /** 3 * 具体组件(实现抽象组件) 4 *