python二郎成长笔记(二)(封装类class)
封装类——class(将内容封装到某处)
class name:def const(self,……)
我们调用函数const时可以这样调用
obj = name()
obj.const()
这里有个概念,类中均包含一个公有参数集,该参数集可以被类内任意函数调用,因此这里也有规定,类内函数的第一个位置参数都是self(这保证了所有函数都能调用self这个参数集)
下面实例来自:https://www.cnblogs.com/chengd/articles/7287528.html
练习二:游戏人生程序1、创建三个游戏人物,分别是:苍井井,女,18,初始战斗力1000
东尼木木,男,20,初始战斗力1800
波多多,女,19,初始战斗力2500
2、游戏场景,分别:草丛战斗,消耗200战斗力
自我修炼,增长100战斗力
多人游戏,消耗500战斗力
复制代码
定义实现功能的类
class Person:def __init__(self, na, gen, age, fig): #初始定义self
self.name = na
self.gender = gen
self.age = age
self.fight =figdef grassland(self):
"""注释:草丛战斗,消耗200战斗力"""self.fight = self.fight - 200def practice(self):
"""注释:自我修炼,增长100战斗力"""self.fight = self.fight + 200def incest(self):
"""注释:多人游戏,消耗500战斗力"""self.fight = self.fight - 500def detail(self):
"""注释:当前对象的详细情况"""temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s" % (self.name, self.gender, self.age, self.fight)
print temp# ##################### 开始游戏 #####################cang = Person('苍井井', '女', 18, 1000) # 创建苍井井角色
dong = Person('东尼木木', '男', 20, 1800) # 创建东尼木木角色
bo = Person('波多多', '女', 19, 2500) # 创建波多多角色cang.incest() #苍井井参加一次多人游戏
dong.practice()#东尼木木自我修炼了一次
bo.grassland() #波多多参加一次草丛战斗#输出当前所有人的详细情况
cang.detail()
dong.detail()
bo.detail()cang.incest() #苍井空又参加一次多人游戏
dong.incest() #东尼木木也参加了一个多人游戏
bo.practice() #波多多自我修炼了一次#输出当前所有人的详细情况
cang.detail()
dong.detail()
bo.detail()游戏人生
一般应用流程为
定义类
class Person:
初始化类内self
def __init__(self, na, gen, age, fig): #初始定义self
使用类的过程相互独立,使用前先进行初始化
cang = Person('苍井井', '女', 18, 1000) # 创建苍井井角色dong = Person('东尼木木', '男', 20, 1800) # 创建东尼木木角色bo = Person('波多多', '女', 19, 2500) # 创建波多多角色
之后直接可以使用类内函数
cang.incest() #苍井井参加一次多人游戏
……用起来是不是很舒服……开心
当然,类在使用中也涉及了继承类,即我们定义了一个类,在定义第二个类时发现该类中有些东西和第一个类的重复了,因此我们可以让第二个类继承第一个类的变量和函数
class A()class B(A) #B类继承了A类
例如:
我们游戏中职业分战士和法师
而战士和法师,每个人都有血、蓝和经验,因此血、蓝和经验无需二次定义
class roledef __init__(self, blo, mn, exp): #初始定义selfself.blood = bloself.mana = mnself.experience =expdef blood(self):print "%s 的血量为: %s " %self.name,self.blooddef mn(self):print "%s 的蓝量为: %s " %self.name,self.manadef exp(self):print "%s 获得的经验值为: %s " %self.name,self.experience
法师
class master(role)def __init__(self, na): #初始定义selfself.name = naself.breed = '法师'def doit(self):print "熟练暴风鬼影"
战士
class man(role)def __init__(self, na): #初始定义selfself.name = naself.breed = '战士'def doit(self):print "熟练精魂水盾"
程序编辑好了,让我们实验一下
m1 = master('路易斯',45,344,1088);
master.mana()
master.doit()
m2 = man('波塞冬',250,15,988);
man.blood()
man.doit()
输出
路易斯的蓝量为:344
熟练暴风鬼影
波塞冬的血量为:250
熟练精魂水盾
下一章将回归主题,开始寻找python进行双目立体视觉构建的方法。
python二郎成长笔记(二)(封装类class)相关推荐
- python二郎成长笔记(三)(matlab标定工具箱详解,旋转矩阵旋转向量,matlab标定数据传入opencv)
这一章由来:二郎之前研究matlab的双目立体视觉,已经得到了需要的信息,可是,二郎想要对代码进行修改使其更适宜自己的应用目的. 修改:标定不用修改--matlab内置的已经很强大了,而且没有必要用p ...
- python二郎成长笔记(一)(pip升级,python入门,基础,python2和3不同格式带来的问题,头文件引用的格式,变量的类型,__name__ == '__main__')
二郎的操作系统是windows,之前同时安装了python2和python3,因此在一些应用中还涉及了版本切换以及安装插件等问题. 同时安装是指在Anaconda中完成的,Anaconda(官方网站) ...
- 《Python cookbook》笔记二
<Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...
- python rot13解密_codewars(python)练习笔记二十:ROT13解密
codewars(python)练习笔记二十:ROT13解密 题目 How can you tell an extrovert from an introvert at NSA? Va gur ryr ...
- 【Python应用探索笔记二】百度语音合成与识别
目录 一.使用国内源安装Python的第三方库 二.录音函数模块 1.固定录音时间的录音方式 2.根据音量大小控制录音开关 三.发送音频文件到百度API 四.语音合成 依旧是百度AI开放平台的功能,这 ...
- Python自我成长笔记(二)
首先我们学习一下python的基础,python3的教程到处都是,本文只讲解里面需要注意的点. 1.数据类型和变量需要注意的几个点 字符串的转义:\" \' print('I\'m \&qu ...
- Programming Computer Vision with Python (学习笔记二)
首先介绍跟图像处理.显示有关两个库:NumPy和Matplotlib,然后介绍增强图像对比度的实现原理. NumPy NumPy是Python用于科学计算的基础库,提供了一些很有用的概念,如:N维数组 ...
- header python 环境信息_python获取网页header头部信息(python小白学习笔记二)
方法一:代码查看 通过python获取网页的链接url,返回码,以及相关的信息 #对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 import urllib.request ur ...
- Python自我成长笔记(一)
在写这篇文章前,我己自学python一个周了,中间遇到大大小小的坑无数.以下讲解一些我的踩坑攻略. pip安装命令:python -m pip install --upgrade pip --forc ...
最新文章
- Django 模型查询2.3
- 二手车电商很热?其实都是平台在自嗨!
- seo发展基本趋势优化专员必须知道!
- OpenCV bgfg分割的实例(附完整代码)
- input发送a.jax_JAX-RS 2.0:自定义内容处理
- freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5
- 字节跳动的敌人只有时间
- r mysql utf8_R读取MySQL数据出现乱码,解决该问题的方法总结
- 人脸离线识别SDK案例合集 | 持续更新
- 【HTML/CSS/计算机网络】75道高频面试题【看这一篇就够啦!】
- VMware Workstation启动虚拟机时蓝屏
- python绘画海贼王_Python爬虫之爬取海贼王全彩漫画图片
- 笔记本外接显示器闪屏
- 微信二维码没有扫描id
- UG8 安装指南,带详细教学视频
- 视频服务器(6) Kurento[1] rtsp2webrtc
- i 技术会笔记 | Druid在爱奇艺的实践和技术演进
- 文本溢出及其在angular中失效的bug
- Vue中实现图标选择器
- IO-Link和CC-Link的区别是什么?
热门文章
- 关于激活Windows10专业版2018长期服务版(神坑的小白一键重装系统)
- 接近真我真实如实呈现
- python与erp_Python-EEG处理和事件相关电位(ERP)
- 信访分析 大数据_“大数据”有多火 化解信访矛盾也用上了它
- 序贯概率比检验法matlab编程,序贯概率比测试法(SPRT)PCM帧同步性能分析
- ionic上传身份证正反面照片、上传图片、FileReader使用 (赞、实用)
- 云开发:让你拥有自己的第一个AI人脸识别小程序
- Cobalt Strike:使用已知的私钥解密流量 -Part 2
- Laravel集成Maatwebsite-Laravel-Excel最新版本v3
- [足式机器人]Part1 双足和四足的运动Ch04——【Legged Robots that Balance 读书笔记】