二十. 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. 20165327 2017-2018-2 《Java程序设计》第9周学习总结

    20165327 2017-2018-2 <Java程序设计>第9周学习总结 教材内容总结 第十三章 (一)教材学习内容总结 理解 URL类是对统一资源定位符的抽象,使用URL创建对象的应 ...

  2. WPF经典编程模式-MVVM示例讲解

    https://www.cnblogs.com/lvdongjie/p/5515962.html

  3. sgu 154

    Factorial 题意:能否找到一个数,它的阶乘后面0的个数为n? 数越大,阶乘后的0越多.用二分找.对于一个数x,它的阶乘,将小于等于它的数分解质因数.其中2的个数一定大于5的个数.因此计5的个数 ...

  4. 如何理解以太坊ABI - 应用程序二进制接口

    很多同学不是很明白以太坊ABI是什么,他的作用是什么,读完本文就明白了. 写在前面 阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么,也可以观看我们的视频:零基础 ...

  5. python模块--time & datetime

    time模块 #获取当前时间的时间戳 import time >>> time.time() 1535004894.0959966 #日期字符串转化成时间戳 >>> ...

  6. BigInteger 类 和 BigDecimal 类

    一 .BigInteger BigInteger类在计算和处理任意大小的整数方面是很有用的. BigInteger 任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的. BigInte ...

  7. SWUST OJ (943)

    顺序表插入操作的实现 #include<stdio.h> #include <stdlib.h> void InitList(int *&l, int n) { l = ...

  8. bat语法需要注意的地方

    if else 格式                            if exist C:\Python27  ::空格  (                      ::(与if在同一行  ...

  9. 【PowerDesigner】【3】字段添加注释和默认值

    问题:最开始生成的Table,表头有些字段没有 解决方案: 1,打开表(双击左键),点击下图圈起来的图标 2,找到comment(注释),勾选 3,找到default value(默认值),勾选 4, ...

  10. ​ 别忘了Nologging哦

    ​ ​ 别忘了Nologging哦