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

时间:2022-06-06 22:26:40

二十. 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&period;4学习笔记&lpar;二十&rpar; python strip&lpar;&rpar;函数 去空格&bsol;n&bsol;r&bsol;t函数的用法

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

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

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

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

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

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

    今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 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&plus;&plus;学习笔记之二十(完结篇 &amp&semi; 面向对象原则)设计模式C&plus;&plus;实例下载

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

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

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

随机推荐

  1. 【HDOJ】1502 Regular Words

    大数+DP,感觉这个DP有点儿抽象,而且这个是大数,wa了很多次. #include <stdio.h> #define MAXNUM 61 #define MAXLEN 100 type ...

  2. 设置textView或者label的行间距方法

    一,效果图. 二,代码. RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional se ...

  3. 使用jquery模拟键盘事件,但window系统并不会真的响应事件,只是浏览器当前页面会响应而已

    <!DOCTYPE html> <html> <head> <title>Demo</title> <meta http-equiv= ...

  4. SQL Server 2014 64位版本链接32位Oracle数据库

    问题背景: 刚进入公司不久的BI新手,最近接部门的一个交接项目,需要在SQL Server上通过openquery来获取Oracle数据库的数据.各种配置,各种设置折腾了一周之久.在此,将自己的问题解 ...

  5. Beta冲刺第二天

    一.昨天的困难 没困难 二.今天进度 局部测试并修复出现的bug 1.林洋洋:修复登录页面显示问题,修复日程查询问题 2.黄腾达:修复创建协作开始时间和结束时间没做检验的问题 3.张合胜:修复页面内容 ...

  6. ASP&period;NET Core 共享第三方依赖库部署的正常打开方式

    曾经: 写了一篇: ASP.Net Core on Linux (CentOS7) 共享第三方依赖库部署 当第二次想做相同的事,却遇上了Bug,于是有了第二篇: ASP.NET Core 共享第三方依 ...

  7. 【Java并发核心九】并发集合框架

    1.List接口:ArrayList 和 Vector ArrayList不是线程安全的,Vector是线程安全的,Vector有一个子类,可实现后进先出(LIFO)的对象堆栈(LinkedList ...

  8. 史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)

    纪录了PHP的一些常用函数和函数代码!不要错过了哦. PHP的一些常用函数usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微 ...

  9. HDU2167&lpar;SummerTrainingDay02-D 状态压缩dp)

    Pebbles Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  10. 国内比特币bitcoin交易平台

    火币网:   www.huobi.com 比特币中国:   www.btcchina.com okcoin:    www.okcoin.cn 中国比特币:   www.chbtc.com 比特币交易 ...