面向对象是Python的特点。面向对象主要通过类class的定义来实现。类class是用来描述具有相同属性和方法的对象的集合。类定义了该集合中的每个对象的共有属性和方法
可以将类理解为一个模块,模块中包含很多个函数,每个函数用来实现某一个功能
对象是根据类创建的实例,通过实例化对象就可以执行类中的各个函数

面向对象不好理解。这里用一个小例子来说明面向对象的基本用法,关于面向对象在后面的系列中还会详述其更高层次的用法
例如,我们想创建一个简单的游戏程序,涉及到游戏人物的创建,几个游戏环节的设计等等

  1. class charater:
  2. '''创建游戏人物'''
  3. def __init__(self, name, gender, age, ability):
  4. self.name = name
  5. self.gender = gender
  6. self.age = age
  7. self.ability = ability
  8.  
  9. def fight_grass(self):
  10. self.ability = self.ability - 200
  11. print('%s参加了一次野外战斗,消耗战斗力200' %self.name)
  12.  
  13. def self_trainng(self):
  14. self.ability = self.ability + 100
  15. print('%s参加了一次自我修炼,增长战斗力100' %self.name)
  16.  
  17. def mass_fight(self):
  18. self.ability = self.ability - 500
  19. print('%s参加了一次多人PK,消耗战斗力500' %self.name)
  20.  
  21. def show_info(self):
  22. print('%s,%s岁,%s,%s战斗力' %(self.name,self.age,self.gender,self.ability))
  1. #定义好上面的类之后 我们就可以开始游戏了 我们先创建3个游戏人物 rogers stark 和 natasha
  2. rogers = charater('史蒂夫 罗杰斯','男',18,1000)
  3. stark = charater('托尼 斯塔克','男',20,1800)
  4. natasha = charater('娜塔莎 罗曼诺夫','女',19,2500)
  5. # 先查看 三个游戏人物的 属性
  6. rogers.show_info()
  7. stark.show_info()
  8. natasha.show_info()

输出:

  1. 史蒂夫 罗杰斯,18岁,男,1000战斗力
  2. 托尼 斯塔克,20岁,男,1800战斗力
  3. 娜塔莎 罗曼诺夫,19岁,女,2500战斗力
  1. # 创建人物之后 每个人物可以进行不同的游戏环节 例如他们三个人 进行不同的游戏环节
  2. rogers.mass_fight()
  3. stark.self_trainng()
  4. natasha.fight_grass()
  1. 输出:
    史蒂夫 罗杰斯参加了一次多人PK,消耗战斗力500
  2. 托尼 斯塔克参加了一次自我修炼,增长战斗力100
  3. 娜塔莎 罗曼诺夫参加了一次野外战斗,消耗战斗力200
  1. # 在经过了上面的环节之后 我们再来查看三个游戏人物的属性是否产生了变化
  2. rogers.show_info()
  3. stark.show_info()
  4. natasha.show_info()
  5. #可以发现 三个游戏人物在经历游戏环节之后 战斗力都发生了改变

输出:

  1. 史蒂夫 罗杰斯,18岁,男,500战斗力
  2. 托尼 斯塔克,20岁,男,1900战斗力
  3. 娜塔莎 罗曼诺夫,19岁,女,2300战斗力

11--Python入门--面向对象的更多相关文章

  1. Python入门 - 面向对象

    python很好的支持面向对象编程,本节主讲类的定义,类的构造方法,类的继承与方法重写,类的多继承. 一.类的定义 class Myclass() : def prt(self, str) : pri ...

  2. Python入门-面向对象-装饰器

    1.变量作用域 全局变量和局部变量 #变量是有作用域的,分为全局变量和局部变量 num = 100 #这是全局变量 def change(): """ 查看变量作用域 & ...

  3. Python入门-面向对象三大特性-多态

    Pyhon不支持多态并且也用不到多态,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型".

  4. Python入门-面向对象三大特性-继承

    面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容. 例如: 猫可以:喵喵叫.吃.喝.拉.撒 狗可以:汪汪叫.吃.喝.拉.撒 如果我们要分别为猫和狗创建一个类,那么就需要为 猫 和 狗 实 ...

  5. Python入门-面向对象三大特性-封装

    一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容封装到某处 sel ...

  6. Python入门-面向对象-特殊方法

    调用拦截功能 class Message: def send(self,info): print("消息发送:",info) class Me: def __getattribut ...

  7. python入门课程 第一章 课程介绍

    1-1 Python入门课程介绍特点:    优雅.明确.简单适合领域:    web网站和各种网络服务    系统工具和脚本    作为"胶水"语言把其他语言开发的模块包装起来方 ...

  8. Python入门篇-面向对象概述

    Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...

  9. python入门(11)条件判断和循环

    python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...

  10. Python入门之面向对象的__init__和__new__方法

    Python入门之面向对象的__init__和__new__方法

随机推荐

  1. miui获取完整root

    1.先解锁BL锁 需要在miui官网申请,下载相关软件,申请后下载软件,提示需要过xx小时才能解锁(我是72小时) 2.解开BL锁后,在系统设置里开启root权限 3.开启root权限后,发现/sys ...

  2. rest_framework视图和组件

    一.视图 1.基本视图 #基本视图 #抽取基类 from rest_framework.response import Response from rest_framework.views impor ...

  3. 超简单的SpringBoot整合mybatis

      1. 创建项目结构 2. 编写application.yml/application.properties配置文件 3. 启动类开启映射包扫描 4. 接口测试 创建项目结构     导入依赖 &l ...

  4. express中session的使用

    一.Session 简单介绍 session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上.Session 的用途:session 运行 ...

  5. bind封装

    原理:通过apply或者call方法来实现. (1)初始版本 Function.prototype.bind=function(obj,arg){ var arg=Array.prototype.sl ...

  6. 【团队】EasyKing的实现_2

    下载开发版 完成情况 完成了碰撞箱的制作 TODO 子弹攻击范围 音效 英雄技能 建筑 双人联机 物品 小兵 地图移动

  7. 编码原则 之 Separation of Concerns

    相关链接: Separation of Concerns 原文 The Art of Separation of Concerns Introduction In software engineeri ...

  8. MSSQL DB Replication Error

    Command attempted: if @@trancount > 0 rollback tran (Transaction sequence number: 0x000283BE00007 ...

  9. JavaScript形而上的单例模式

    什么是单例模式? 单例模式是指,类多次实例化返回的对象是同一个. 反例 var tt = function(name){ this.name = name; }; var t1 = new tt('t ...

  10. 代码覆盖率-JaCoCo

    代码覆盖率 在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,比如,代码覆盖率必须达到80%或 90%. JaCoCo Jacoco从多种角度对代码 ...