二十. Python基础(20)--面向对象的基础
二十. Python基础(20)--面向对象的基础
1 ● 类/对象/实例化
类:具有相同属性、和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数) # 这个参数传给__init__方法 类的的定义 |
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)--面向对象的基础的更多相关文章
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
- Python基础-week06 面向对象编程基础
一.面向对象编程 1.面向过程 与 面向对象编程 面向过程的程序设计: 核心是 过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式 ...
- Python之class面向对象(基础篇)
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- Python 入门基础20 --面向对象_继承、组合
今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...
- python之路——面向对象(基础篇)
面向对象编程:类,对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类&quo ...
- 用二十秒记住几个PHP基础知识点
数组: 索引数组:数组的键是整数的数组,从0開始. 关联数组:数组的键是字符串的数组 //索引数组 $arr=array('I','love','you'); //关联数组 $arr0=array(' ...
- 大数据笔记(二十四)——Scala面向对象编程实例
===================== Scala语言的面向对象编程 ======================== 一.面向对象的基本概念:把数据和操作数据的方法放到一起,作为一个整体(类 c ...
- 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载
Prototype(原型模式) 20.1.解释 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. main(),客户 ICloneableNow,只有一个接口Clone CM ...
- Java学习笔记二十九:一个Java面向对象的小练习
一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...
随机推荐
- android------Eclipse Memory Analyzer (MAT)
简单介绍 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速.功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗. 使用内 ...
- arm ncnn
ncnn网址:https://github.com/Tencent/ncnn 1. sudo apt-get update sudo apt-get upgrade 2. 命令:sudo apt-ge ...
- vue给元素动态添加class
<p class="answerNum2" v-text="iteme.sel_num" :class="{letter: num }" ...
- python记录_day10 动态传参 命名空间 作用域
一.动态传参 动态传参用到 *args 和 **kwargs ,*号表示接收位置参数,args是参数名:**表示接收关键字参数,kwargs是参数名 def chi(*food): print(foo ...
- 『TensorFlow』第二弹_线性拟合&神经网络拟合_恰是故人归
Step1: 目标: 使用线性模拟器模拟指定的直线:y = 0.1*x + 0.3 代码: import tensorflow as tf import numpy as np import matp ...
- java进行url编码和解码
public static String getURLEncoderString(String str) { String result = ""; if (null == str ...
- php打印
function preview() { bdhtml = window.document.body.innerHTML; sprnstr = "<!--startprint--> ...
- Excel中如何匹配另外一个Excel中的数据
场景: 我在Excel中想展示通过一列匹配到另外Excel中的数据.对于程序员来说,就是left join 出 B表的数据. 但是在Excel中怎么做呢,我又不想每次都在把数据导入到数据库中操作. 这 ...
- bootstrap居中
1.页面 <div class="container"> <div class="row clearfix"> <div clas ...
- JS 设置盒子div 跳转
方式一 window.location.href=”url”; 在当前窗口跳转 方式二 window.open(‘url’) 在新窗口跳转 window.open(‘url’,’_self’) 在当前 ...