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 =fig

def grassland(self):
"""注释:草丛战斗,消耗200战斗力"""

self.fight = self.fight - 200

def practice(self):
"""注释:自我修炼,增长100战斗力"""

self.fight = self.fight + 200

def incest(self):
"""注释:多人游戏,消耗500战斗力"""

self.fight = self.fight - 500

def 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 role
	def __init__(self, blo, mn, exp):  #初始定义self
    	self.blood = blo
    	self.mana = mn
    	self.experience =exp
 	def blood(self):
 		print "%s 的血量为:  %s " %self.name,self.blood
 	def mn(self):
 		print "%s 的蓝量为:  %s  " %self.name,self.mana
 	def exp(self):
 		print "%s 获得的经验值为:  %s  " %self.name,self.experience

法师

class master(role)
    def __init__(self, na):  #初始定义self
        self.name = na
        self.breed = '法师'
    def doit(self):
    	print "熟练暴风鬼影"

战士

class man(role)
    def __init__(self, na):  #初始定义self
         self.name = na
         self.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进行双目立体视觉构建的方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值