11--Python入门--面向对象
面向对象是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战斗力
11--Python入门--面向对象的更多相关文章
- Python入门 - 面向对象
python很好的支持面向对象编程,本节主讲类的定义,类的构造方法,类的继承与方法重写,类的多继承. 一.类的定义 class Myclass() : def prt(self, str) : pri ...
- Python入门-面向对象-装饰器
1.变量作用域 全局变量和局部变量 #变量是有作用域的,分为全局变量和局部变量 num = 100 #这是全局变量 def change(): """ 查看变量作用域 & ...
- Python入门-面向对象三大特性-多态
Pyhon不支持多态并且也用不到多态,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型".
- Python入门-面向对象三大特性-继承
面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容. 例如: 猫可以:喵喵叫.吃.喝.拉.撒 狗可以:汪汪叫.吃.喝.拉.撒 如果我们要分别为猫和狗创建一个类,那么就需要为 猫 和 狗 实 ...
- Python入门-面向对象三大特性-封装
一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容封装到某处 sel ...
- Python入门-面向对象-特殊方法
调用拦截功能 class Message: def send(self,info): print("消息发送:",info) class Me: def __getattribut ...
- python入门课程 第一章 课程介绍
1-1 Python入门课程介绍特点: 优雅.明确.简单适合领域: web网站和各种网络服务 系统工具和脚本 作为"胶水"语言把其他语言开发的模块包装起来方 ...
- Python入门篇-面向对象概述
Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...
- python入门(11)条件判断和循环
python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...
- Python入门之面向对象的__init__和__new__方法
Python入门之面向对象的__init__和__new__方法
随机推荐
- np.meshgrid()用法+ np.stack()用法
A,B,C,D,E,F是6个网格点,坐标如图,如何用矩阵形式(坐标矩阵)来批量描述这些点的坐标呢?答案如下 这就是坐标矩阵——横坐标矩阵X XX中的每个元素,与纵坐标矩阵Y YY中对应位置元素,共同构 ...
- Uncertainty
I did'nt know where i was supposed to be, until i'd actually arrived.
- Python Redis 常用操作
delete(*names) # 根据删除redis中的任意数据类型 exists(name) # 检测redis的name是否存在 keys(pattern='*') # 根据模型获取redis的n ...
- UI自动化(六)js
HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...
- Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项
本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...
- css基础参考文档
block inline-block inline区别 absolute定位详解:https://www.jianshu.com/p/a3da5e27d22b css浮动详解 float浮动 div变 ...
- CSS3 傻傻分不清楚的transition, transform 和 animation
transition transition允许css的属性值在一定的时间区间内平滑地过渡,语法如下: transition : transition-property transition-durat ...
- 716-River Crossing
深奥dp,状态转来转去,反正就是能解题 #include <cstdio> #include <iostream> #include <cstring> #incl ...
- IdentityServer4服务器配置
Session认证和JWT(Json Web Token) Token认证就是基于JWT 1.Session认证 1. 用户输入其登录信息 2. 服务器验证信息是否正确,并创建一个session,然后 ...
- django内置的认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...