二十. 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. NGUI中处理层级问题的几个方法总结

    1.获得ui界面的UIPanel的最大层级: static int GetUIMaxDepth(Transform root) { UIPanel[] panels = root.GetCompone ...

  2. 几种RAID介绍(总结)

    概念 RAID是Redundent Array of Inexpensive Disks的缩写,简称为“磁盘阵列”.后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵 ...

  3. keil MDK注意事项

    1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此 ...

  4. 决策论 | 信息论 | decision theory | information theory

    参考: 模式识别与机器学习(一):概率论.决策论.信息论 Decision Theory - Principles and Approaches 英文图书 What are the best begi ...

  5. 【消息队列】kafka是如何保证消息不被重复消费的

    一.kafka自带的消费机制 kafka有个offset的概念,当每个消息被写进去后,都有一个offset,代表他的序号,然后consumer消费该数据之后,隔一段时间,会把自己消费过的消息的offs ...

  6. 20171022xlVBA练手提取入所记录

    Sub GetWordText改进() Dim Wb As Workbook Dim Sht As Worksheet Dim Rng As Range Dim wdApp As Object Dim ...

  7. Web测试——功能测试

    由于本人工作接触Web测试,所以我从网上找的资料,学习了解web测试哪些内容,然后自己整理汇总的随笔,如文章中有不足的地方,请大家多多指教:或者文章内容与他人相似,望见谅. 功能测试: 1.链接测试: ...

  8. word2013密钥

    office 2013是一款功能强大的办公软件目前有两个版本分别为企业版和专业版,是继Microsoft Office 2010 后的新一代套装软件.2012年7月份,微软发布了免费的Office 2 ...

  9. 安卓——AppTheme

    <?xml version="1.0" encoding="utf-8"?> <resources> <style name=&q ...

  10. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)

    GPL GPL授予程序接受人以下权利,或称“自由”: * 以任何目的运行此程序的自由 * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提) * 再发行复制件的自由 * 改进此程序, ...