封装类——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)相关推荐

  1. python二郎成长笔记(三)(matlab标定工具箱详解,旋转矩阵旋转向量,matlab标定数据传入opencv)

    这一章由来:二郎之前研究matlab的双目立体视觉,已经得到了需要的信息,可是,二郎想要对代码进行修改使其更适宜自己的应用目的. 修改:标定不用修改--matlab内置的已经很强大了,而且没有必要用p ...

  2. python二郎成长笔记(一)(pip升级,python入门,基础,python2和3不同格式带来的问题,头文件引用的格式,变量的类型,__name__ == '__main__')

    二郎的操作系统是windows,之前同时安装了python2和python3,因此在一些应用中还涉及了版本切换以及安装插件等问题. 同时安装是指在Anaconda中完成的,Anaconda(官方网站) ...

  3. 《Python cookbook》笔记二

    <Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...

  4. python rot13解密_codewars(python)练习笔记二十:ROT13解密

    codewars(python)练习笔记二十:ROT13解密 题目 How can you tell an extrovert from an introvert at NSA? Va gur ryr ...

  5. 【Python应用探索笔记二】百度语音合成与识别

    目录 一.使用国内源安装Python的第三方库 二.录音函数模块 1.固定录音时间的录音方式 2.根据音量大小控制录音开关 三.发送音频文件到百度API 四.语音合成 依旧是百度AI开放平台的功能,这 ...

  6. Python自我成长笔记(二)

    首先我们学习一下python的基础,python3的教程到处都是,本文只讲解里面需要注意的点. 1.数据类型和变量需要注意的几个点 字符串的转义:\" \' print('I\'m \&qu ...

  7. Programming Computer Vision with Python (学习笔记二)

    首先介绍跟图像处理.显示有关两个库:NumPy和Matplotlib,然后介绍增强图像对比度的实现原理. NumPy NumPy是Python用于科学计算的基础库,提供了一些很有用的概念,如:N维数组 ...

  8. header python 环境信息_python获取网页header头部信息(python小白学习笔记二)

    方法一:代码查看 通过python获取网页的链接url,返回码,以及相关的信息 #对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 import urllib.request ur ...

  9. Python自我成长笔记(一)

    在写这篇文章前,我己自学python一个周了,中间遇到大大小小的坑无数.以下讲解一些我的踩坑攻略. pip安装命令:python -m pip install --upgrade pip --forc ...

最新文章

  1. Django 模型查询2.3
  2. 二手车电商很热?其实都是平台在自嗨!
  3. seo发展基本趋势优化专员必须知道!
  4. OpenCV bgfg分割的实例(附完整代码)
  5. input发送a.jax_JAX-RS 2.0:自定义内容处理
  6. freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5
  7. 字节跳动的敌人只有时间
  8. r mysql utf8_R读取MySQL数据出现乱码,解决该问题的方法总结
  9. 人脸离线识别SDK案例合集 | 持续更新
  10. 【HTML/CSS/计算机网络】75道高频面试题【看这一篇就够啦!】
  11. VMware Workstation启动虚拟机时蓝屏
  12. python绘画海贼王_Python爬虫之爬取海贼王全彩漫画图片
  13. 笔记本外接显示器闪屏
  14. 微信二维码没有扫描id
  15. UG8 安装指南,带详细教学视频
  16. 视频服务器(6) Kurento[1] rtsp2webrtc
  17. i 技术会笔记 | Druid在爱奇艺的实践和技术演进
  18. 文本溢出及其在angular中失效的bug
  19. Vue中实现图标选择器
  20. IO-Link和CC-Link的区别是什么?

热门文章

  1. 关于激活Windows10专业版2018长期服务版(神坑的小白一键重装系统)
  2. 接近真我真实如实呈现
  3. python与erp_Python-EEG处理和事件相关电位(ERP)
  4. 信访分析 大数据_“大数据”有多火 化解信访矛盾也用上了它
  5. 序贯概率比检验法matlab编程,序贯概率比测试法(SPRT)PCM帧同步性能分析
  6. ionic上传身份证正反面照片、上传图片、FileReader使用 (赞、实用)
  7. 云开发:让你拥有自己的第一个AI人脸识别小程序
  8. Cobalt Strike:使用已知的私钥解密流量 -Part 2
  9. Laravel集成Maatwebsite-Laravel-Excel最新版本v3
  10. [足式机器人]Part1 双足和四足的运动Ch04——【Legged Robots that Balance 读书笔记】