二十. Python基础(20)--面向对象的基础

1 ● 类/对象/实例化

类:具有相同属性、和方法的一类人/事/物

对象(实例): 具体的某一个人/事/物

实例化: 用类创建对象的过程→类名(参数) # 这个参数传给__init__方法

类的的定义
: class关键字
类名(首字母大写)

 

2 ● 面相对象方法在什么时候用?

需要反复传递相同的参数给一些函数的时候

例如一个长方形的长/宽作为参数反复传递给计算面积/周长/对角线的函数

 

3 ● 属性

① 类中的属性:

    #静态属性:类属性

    #动态属性:方法

② 对象的属性:

    # __init__()方法初始化而来

    # 在类内调用对象的属性:self.属性名

    # 在类外调用对象的属性:对象名.属性名

 

4 ● 案例: 人狗大战

class Person:

    role = 'person'     #静态属性/类属性: 所有对象共有的属性,可以直接被类调用

    def __init__(self,name,sex,aggressive=200):

        #对象属性: 只属于某一个对象, 必须在实例化之后才能被对象调用

        self.name = name            #名字

        self.sex = sex             #性别

        self.aggr = aggressive     #攻击力

        self.blood = 2000         #

 

    def attack(self,dog): #类里面所有的方法本质上都是函数,拥有一个必须传递的参数self

        print('%s attack %s'%(self.name,dog.name))

        dog.blood -= self.aggr

 

class Dog:

    def __init__(self,name,aggressive=500):

        self.name = name

        self.aggr = aggressive

        self.blood = 8000

 

    def bite(self,person):

        print('%s bites %s'%(self.name,person.name))

        person.blood = person.blood - self.aggr

        if person.blood <= 0:

            print('game over : %s'%person.name)

 

alex = Person('alex','male',250)

egon = Person('egon','male')

teddy = Dog('Mica')

teddy.bite(alex)

print(alex.blood)

teddy.bite(alex)

print(alex.blood)

 

'''

Mica bites alex

1500

Mica bites alex

1000

'''

 

二十. Python基础(20)--面向对象的基础的更多相关文章

  1. python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法

    python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...

  2. Python基础-week06 面向对象编程基础

    一.面向对象编程 1.面向过程 与 面向对象编程 面向过程的程序设计: 核心是 过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式 ...

  3. Python之class面向对象(基础篇)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  4. Python 入门基础20 --面向对象_继承、组合

    今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...

  5. python之路——面向对象(基础篇)

    面向对象编程:类,对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类&quo ...

  6. 用二十秒记住几个PHP基础知识点

    数组: 索引数组:数组的键是整数的数组,从0開始. 关联数组:数组的键是字符串的数组 //索引数组 $arr=array('I','love','you'); //关联数组 $arr0=array(' ...

  7. 大数据笔记(二十四)——Scala面向对象编程实例

    ===================== Scala语言的面向对象编程 ======================== 一.面向对象的基本概念:把数据和操作数据的方法放到一起,作为一个整体(类 c ...

  8. 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载

      Prototype(原型模式) 20.1.解释 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. main(),客户 ICloneableNow,只有一个接口Clone CM ...

  9. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

随机推荐

  1. 如何跳过开机密码进入windows系统

    工具:安装好PE系统的u盘一个. 开机时按F12(每个电脑不同)进入PE系统,将c盘目录下的SAM文件拷入自己的u盘内.SAM文件的位置:  C:\WINDOWS\system32\config\SA ...

  2. Python如何发布程序

    https://blog.csdn.net/wem603947175/article/details/81589729

  3. IntelliJ IDEA 安装 Scala 插件

    本页面中对在 IntelliJ 中安装 Scala 插件的步骤和方法进行了描述. 需要在 IntelliJ  安装 Scala 插件,你首先需要在你的计算机中安装 IntelliJ .IntelliJ ...

  4. PHP中工厂模式与策略模式区别

    策略模式需要自己动手去做,工厂模式是都准备好了你需要选择 工厂模式:有一天你决定去吃披萨,一看菜单,哦,种类很多呀,你就点了个培根披萨,过了二十分钟,你的披萨就来了就可以吃到了.但这个披萨是怎么做的, ...

  5. vscode插件之C/C++

    目录 1.给C/C++调试器配置launch.json 2.配置VS Code的调试行为 3.配置目标应用 4.自定义GDB或者LLDB 5.调试dump(转储)文件 6.远程调试或者本地服务器上调试 ...

  6. spring boot 2.0(一)权威发布spring boot2.0

    Spring Boot2.0.0.RELEASE正式发布,在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring ...

  7. spring boot(十五)spring boot+thymeleaf+jpa增删改查示例

    快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.b ...

  8. Beta阶段——第6篇 Scrum 冲刺博客

    Beta阶段--第6篇 Scrum 冲刺博客 标签:软件工程 一.站立式会议照片 二.每个人的工作 (有work item 的ID) 昨日已完成的工作 人员 工作 林羽晴 完成了函数的编写,提供报表数 ...

  9. Github的gitignore

    Git Bash Here的时候自动产生一个.gitignore文件,.gitignore文件的作用上让没有track,也就是没有被add的,如果想ignore已经track的,用git rm --c ...

  10. 一道PHP题引出的“短路求值”

    今天群里有个人问了一个问题,代码如下: $a = 3; $b = 2; if ($a = 2 || $b = 5) {     ++$a; } echo $a; 说代码段的执行的结果为1,问大家$a的 ...