day25 面向对象引子
面向对象编程
所谓模子就是 类 抽象的,能知道什么属性,但是不知道属性具体值
一切都是对象 有具体值 属性和技能都是根据类 模子来规范
# 人狗大战 # 角色模型
# 人的模型
def Person(name,blood,aggr,sex):
person = {
"name": name ,
"blood": blood, # 血量
"aggr": aggr, # 攻击
"sex": sex,
}
def attack(dog):
dog["blood"] -= person["aggr"]
print("%s 被 %s打了,失去了%s 血" % (dog["name"], person["name"], person["aggr"]))
person["attack"] = attack # 增加一个技能
return person
alex= Person("狗剩儿",100,1,"不详")
nezha= Person("糯扎",200,2,"不详")
print(nezha)
# 用函数定义一个东西,方便增加人物,方便修改,更加规范,人模子 # 狗的模型
def Dog(name,blood,aggr,kind):
dog = {
"name": name ,
"blood": blood,
"aggr": aggr,
"kind": kind,
}
def bite(person):
person["blood"] -= dog["aggr"]
print("%s 被 %s咬了,失去了%s 血" % (person["name"], dog["name"], dog["aggr"]))
dog["bite"] = bite
return dog
jin= Dog("金星",100,1,"teddy")
suyang= Dog("苏阳",1,1,"狗东西")
print(suyang)
suyang["bite"](nezha)
nezha["attack"](suyang) # {'name': '糯扎', 'blood': 200, 'aggr': 2, 'sex': '不详', 'attack': <function Person.<locals>.attack at 0x00000000028702F0>}
# {'name': '苏阳', 'blood': 1, 'aggr': 1, 'kind': '狗东西', 'bite': <function Dog.<locals>.bite at 0x0000000002870488>}
# 糯扎 被 苏阳咬了,失去了1 血
# 苏阳 被 糯扎打了,失去了2 血
day25 面向对象引子的更多相关文章
- 面向对象【day07】:面向对象引子(一)
本节内容 概述 面向对象引子 面向过程介绍 一.概述 很对人都不理解编程中的面向对象的概念,那我们先来说说面向对象的引子,由这个引子带领我们更好的理解面向对象的概念. 二.面向对象引子 你现在是一家游 ...
- 【python】-- 面向对象引子、概念
面向过程编程 1.编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马 ...
- day25 面向对象继承,多态,
这两天所学的都是面向对象,后面还有几天也是它,面向对象主要有三个大的模块,封装,继承,多态,(组合),昨天主要讲了面向对象的命名空间,还有组合的用法,今天是讲的继承还有继承里面所包括的钻石继承,以及多 ...
- day25 面向对象之多态和鸭子类型
1.封装方法 如何封装:给方法名称前面加上双下划线 # ATM 的取款功能 # 1.插入银行卡 2.输入密码 3.选择取款金额 4.取款 class ATM: def __insert_card(se ...
- Python 面向对象介绍
面向对象,面向过程 面向对象引子 人狗大战,人与狗都有不同的特点,如果要写出这两个不同角色 需要写出两个角色,可以使用嵌套函数,函数内在写入函数,然后通 过字典,将里层函数reture出来,在调用. ...
- Day7 初识面向对象,面向对象之继承、多态和封装
一.面向对象引言 一.面向对象的程序设计的由来 详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二.面向对象引子 写一个简单程序 ...
- day6-面向对象基础篇
一.面向对象引子及概念 结合编程的一些理论知识和实践,可以总结出目前存在以下编程模式: 1. 面向过程 按照业务逻辑和实现过程步骤来逐步垒代码,代码编写的逻辑即对应于实际实现的步骤过程,核心是过程两个 ...
- 博文分类索引--Python
Python 基础 [python]-- 初识python [python]-- 基本语法.循环 [python]-- 列表 [python]-- 元组.字典 [python]-- 字符串.字符编码与 ...
- DAY25、面向对象总复习
面向对象总复习:面向过程编程思想: 核心是 过程 二字, 过程指的是解决问题的步骤是,即先干什么再干什么. 基于该编程思想编写程序,相当于一条流水线,一种机械式的思维方式. 面向对象编程思想: 核心是 ...
随机推荐
- React-使用redux-immutable统一数据格式
在header的reducer.js里把header变成immutable对象之后,在组件里获取focused属性就得这样获取: focused:state.header.get('focused') ...
- 在线图标制作,格式转换 ICON
在线图标制作,格式转换 https://www.easyicon.net/covert/
- [Spark][Python]DataFrame的左右连接例子
[Spark][Python]DataFrame的左右连接例子 $ hdfs dfs -cat people.json {"name":"Alice",&quo ...
- [Spark][Python]spark 从 avro 文件获取 Dataframe 的例子
[Spark][Python]spark 从 avro 文件获取 Dataframe 的例子 从如下地址获取文件: https://github.com/databricks/spark-avro/r ...
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...
- Socket异步通信及心跳包同时响应逻辑分析(最后附Demo)。
有段时间没有更博了,刚好最近在做Socket通信的项目,原理大致内容:[二维码-(加logo)]-->提供主机地址和端口号信息(直接使用[ThoughtWorks.QRCode.dll]比较简单 ...
- Mac下通过VMware Fusion安装centos虚拟机操作记录
下面介绍下利用VMware Fusion工具在Mac上安装centos虚拟机的做法:1)下载VMware Fusion工具下载地址(包括注册码):http://www.macx.cn/thread-2 ...
- python-批量添加图片水印
前言: 最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印. 话不多说,直接上代码. 一.单张图片添加文字水印 # -* ...
- back
#include<stdio.h> int main() { int a[5],b[5][5]; int i,j,sum,max,m,n; printf("输 ...
- Leetcode——258.各位相加【水题】
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...