19 面向对象初识2 
一.类的名称空间
1.对象的名称空间
对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找类中的"方法名"(函数).
2.类的查询顺序
对象的查询顺序,先找"对象空间",如果没有,通过对象中"类对象指针"找"类名称空间"
3.对象的问题
无论创建多少对象都是开辟独立的空间,各个对象之间不能互相查找,干扰.
二.计算一个类实例化多少个对象
class Person:
level="高级动物"
mind="有思想"
stand="直立行走"
count=0 # 设置一个计数变量
def __init__(self,name,age):
Person.count=Person.count+1 # 设置一个计数器
self.name=name
self.age=age
def eat(self):
print("吃吃的爱")
aQ=Person("阿Q",30)
aP=Person("阿啤",26)
aF=Person('阿凡',27)
print(aQ.count) # 3 三.组合
1.定义
给一个类的对象封装一个属性,这个属性是一个类的对象.
2.模拟英雄联盟写一个游戏人物的类. (加武器)
要求:
(1)创建一个 Game_role的类.
(2) 构造方法中给对象封装name,ad(攻击力),hp(血量).三个属性.
(3) 创建一个attack方法,此方法是实例化两个对象,互相攻击的功能:
例: 实例化一个对象 盖伦,ad为10, hp为100
实例化另个一个对象 剑豪 ad为20, hp为80
盖伦通过attack方法攻击剑豪,此方法要完成 '谁攻击谁,谁掉了多少血, 还剩多少血'的提示功能.
class Game_role: #第一个类
def __init__(self,name,ad,hp):
self.name=name
self.ad=ad
self.hp=hp def attack(self,other):
other.hp=other.hp-self.ad #剩余血量
print("%s攻击%s,%s掉了%s血,还剩%s血" %(self.name,other.name,other.name,self.ad,other.hp ))
def package_weapon(self,wea):
self.weapon = wea #给对象增加weapon属性
class Sword: #第二个类
def __init__(self,name,ad):
self.name=name
self.ad=ad
def fight(self,other1,other2):
other2.hp=other2.hp-double_edged.ad #剩余血量
print("%s用%s攻击%s,%s掉了%s血,还剩%s血" %(hero1.name,self.name,hero2.name,hero2.name,double_edged.ad,other2.hp)) hero1=Game_role("盖伦",100,500) #第一个类 实例化的第一个对象
hero2=Game_role("剑豪",250,800)  #第一个类 实例化的第二个对象
double_edged=Sword("宝剑",400) #第二个类 实例化的第一个对象 hero1.package_weapon(double_edged) #对象执行package_weapon方法给对象增加weapon属性
hero1.weapon.fight(hero1,hero2) #hero1.weapon对象查找对象的weapon属性 weapon的值为"double_edged"
double_edged是Sword类实例化的一个对象,对象执行fight方法需要传两个参数

python全栈开发 * 19 面向对象 知识点汇总 * 180701的更多相关文章

  1. python全栈开发 * 23 面向对象 知识点汇总 * 180704

    23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()pr ...

  2. python全栈开发 * 22 面向对象 知识点汇总 * 180703

    22 面向对象 -----属性,类方法,静态方法,反射一.属性1.属性的定义:将方法伪装成属性,虽然在代码层面上没有任何高深之处,但让其看起来更合理. (类似于属性的方法)class Person: ...

  3. python全栈开发 * 18 面向对象知识点汇总 * 180530

    18 面向对象初识1class person: level="高级动物" mind="有思想" def __init__(self,name,age,gent, ...

  4. python全栈开发 * 20 继承知识点汇总 * 180530

    20 面向对象的三大特征之一(继承,多态,封装) -----继承 1.继承的定义: 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类;父类又可称为基类或超类,新建的类称为派生 ...

  5. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  6. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  7. Python 全栈开发七 面向对象

    一.编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式 ...

  8. 巨蟒python全栈开发django9:一些知识点的汇总

    回顾上周内容: 题目: 1.人民出版社出版过的所有书籍的名字以及作者的姓名(三种写法,笔记中有两种写法) 2.手机以2开头的作者出版过的所有书籍名称以及出版社名称(三种写法,笔记中有1种写法) 1.聚 ...

  9. python全栈开发day21面向对象初识总结

随机推荐

  1. Win10系统的SurfacePro4如何重装系统-2 重装WIN10系统

    把SurfacePro充好电,然后关机,开机按住音量+,然后再按电源键,可以开机并进入BIOS(此前应确保优盘已经装了PE并插入Surface)   然后选择U盘启动为第一个(按住之后把他拖放到第一位 ...

  2. 评分卡模型剖析之一(woe、IV、ROC、信息熵)

    信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二分类变量的广 ...

  3. Easyui中 alert 带回调函数的 消息框

    带回调函数的 消息框: $.messager.alert({ title:'消息', msg:'电话号码 只能是数字!', icon: 'info', width: 300, top:200 , // ...

  4. CentOS 6.5 x64下查看服务版本

    1.查看服务是否是64位 [root@Yimmei ~]# getconf LONG_BIT 642.查看服务器版本信息 [root@Yimmei ~]# lsb_release -a LSB Ver ...

  5. 在Visual Studio 2013中安装Mysql for EntityFramework

    1. 安装Visual Studio 20132. 下载mysql,安装mysql.3. 下载 mysql-for-visualstudio-1.2.7.msi, 下载链接:https://cdn.m ...

  6. ASP.NET CORE下运行CMD命令

    ASP.NET CORE下运行CMD命令,用以前的ASP.NET 的命令System.Diagnostics.Process.Start("notepad");这样是可以运行出记事 ...

  7. (10) 如何MySQL读压力大的问题

    如何进行读写分离 由开发人员根据所执行的SQL类型连接不同的服务器 由数据库中间层实现读写分离 读写分离时,需要注意,对于实时性要求比较高的数据,不适合在从库上查询(因为主从复制存在一定延迟(毫秒级) ...

  8. Roslyn如何实现简单的代码提示

    假如需要实现一个代码编辑器,其中一个很重要的功能是实现代码提示,类似VS的代码智能提示.下面用Roslyn编译器来实现一个简单的代码提示功能. 代码提示,首先必须需要知道对象的类型信息,然后通过迭代获 ...

  9. 通过JS页面唤醒app(安卓+ios)

    var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVersion; ret ...

  10. curl 模拟请求

    https://www.jianshu.com/p/7965c56c5a2e ********************************************* 一般情况下我们会在网页上请求后 ...