面向对象是Python的特点。面向对象主要通过类class的定义来实现。类class是用来描述具有相同属性和方法的对象的集合。类定义了该集合中的每个对象的共有属性和方法
可以将类理解为一个模块,模块中包含很多个函数,每个函数用来实现某一个功能
对象是根据类创建的实例,通过实例化对象就可以执行类中的各个函数
面向对象不好理解。这里用一个小例子来说明面向对象的基本用法,关于面向对象在后面的系列中还会详述其更高层次的用法
例如,我们想创建一个简单的游戏程序,涉及到游戏人物的创建,几个游戏环节的设计等等
class charater: '''创建游戏人物''' def __init__(self, name, gender, age, ability): self.name = name self.gender = gender self.age = age self.ability = ability def fight_grass(self): self.ability = self.ability - 200 print('%s参加了一次野外战斗,消耗战斗力200' %self.name) def self_trainng(self): self.ability = self.ability + 100 print('%s参加了一次自我修炼,增长战斗力100' %self.name) def mass_fight(self): self.ability = self.ability - 500 print('%s参加了一次多人PK,消耗战斗力500' %self.name) def show_info(self): print('%s,%s岁,%s,%s战斗力' %(self.name,self.age,self.gender,self.ability))
#定义好上面的类之后 我们就可以开始游戏了 我们先创建3个游戏人物 rogers stark 和 natasha rogers = charater('史蒂夫 罗杰斯','男',18,1000) stark = charater('托尼 斯塔克','男',20,1800) natasha = charater('娜塔莎 罗曼诺夫','女',19,2500) # 先查看 三个游戏人物的 属性 rogers.show_info() stark.show_info() natasha.show_info()
输出:
史蒂夫 罗杰斯,18岁,男,1000战斗力 托尼 斯塔克,20岁,男,1800战斗力 娜塔莎 罗曼诺夫,19岁,女,2500战斗力
# 创建人物之后 每个人物可以进行不同的游戏环节 例如他们三个人 进行不同的游戏环节 rogers.mass_fight() stark.self_trainng() natasha.fight_grass()
输出:
史蒂夫 罗杰斯参加了一次多人PK,消耗战斗力500 托尼 斯塔克参加了一次自我修炼,增长战斗力100 娜塔莎 罗曼诺夫参加了一次野外战斗,消耗战斗力200
# 在经过了上面的环节之后 我们再来查看三个游戏人物的属性是否产生了变化 rogers.show_info() stark.show_info() natasha.show_info() #可以发现 三个游戏人物在经历游戏环节之后 战斗力都发生了改变
输出:
史蒂夫 罗杰斯,18岁,男,500战斗力 托尼 斯塔克,20岁,男,1900战斗力 娜塔莎 罗曼诺夫,19岁,女,2300战斗力