一、依赖关系(紧密程度最低)

(1)简单的定义:就是方法中传递一个对象。此时类与类之间存在依赖关系,此关系比较低。

(2)实例植物大战僵尸简易版

题目要求:创建一个植物,创建一个僵尸

1、植物:名字、血量,攻击力

2、僵尸:名字、血量、攻击力

3、植物可以打僵尸,僵尸掉血

4、植物被僵尸咬,植物掉血

# 植物大战僵尸简易版

class ZhiWu:#创建植物类

def __init__(self,name,hp,attack):#初始化属性

self.name=name

self.hp=hp

self.attack=attack

def da(self,js):

js.hp-=self.attack

class JiangShi:#创建僵尸类

def __init__(self,name,hp,attack):#初始化属性

self.name=name

self.hp=hp

self.attack=attack

def eat(self,zw):

zw.hp -= self.attack

# 创建僵尸和植物对象

zw=ZhiWu("紫罗兰",20,10)

js=JiangShi("躺尸",30,5)

# 植物攻击一次

zw.da(js)

print(js.hp)#

# 僵尸攻击一次

js.eat(zw)

print(zw.hp)#

二、关联关系(组合、聚合)

1、简单的定义:两种事物必须是相互关联的,在某种特殊情况下是可以更改和更换的 。

2、聚合关系:属于关联关系中的特例,重点是xx和xx聚合成的xxx。各个零部件也可以单独工作。

3、组合关系:组合关系是比较紧密的一种关系,一损俱损。

4、常见格式(一对一或者一对多模式)

def __init__(self,name,xxxlist=None);

self.name=name

self.xxxlist=xxxlist

def __init__(self,name,teacher=None):

self.teacher=tercher

5、实例:老师和学生模型(老师对学生是一对多,学生对老师是一对一)

# 创建老师类 老师能选学生

class Teacher:

def __init__(self,name,stu_lst=None):

self.name=name

if stu_lst:# 判断传递过来的参数是否是空

self.stu_lst=stu_lst

else:

self.stu_lst=[]

def tianjia(self,stu):#添加学生功能

self.stu_lst.append(stu.name)

def display(self):#显示老师对应的学生

for i in self.stu_lst:

print(i,end=",")

# 创建学生类

class Student:

def __init__(self,num,name,teacher=None):

self.num=num

self.name=name

self.techer=teacher

# 创建1个老师,5个学生

t=Teacher("黄日中")

s1=Student(1,"郭德纲")

s2=Student(2,"岳云鹏")

s3=Student(3,"张杰")

s4=Student(4,"谢啦")

s5=Student(5,"沈腾")

# 添加学生

t.tianjia(s1)

t.tianjia(s2)

t.tianjia(s3)

t.tianjia(s4)

t.tianjia(s5)

# 显示老师学生列表

t.display()#郭德纲,岳云鹏,张杰,谢啦,沈腾,

三、简单的继承

核心self:谁调用,self就是谁。

class Base:

def __init__(self, num):

self.num = num

def func1(self):

print(self.num)

self.func2()

def func2(self):

print(111, self.num)

class Foo(Base):继承

def func2(self):

print(222, self.num)

lst = [Base(1), Base(2), Foo(3)]

for obj in lst:

obj.func2()

#结果111 1 111 2 222 3

class UserInfo(object):

pass

class Department(object):

pass

class StarkConfig(object):

def __init__(self, num):

self.num = num

def changelist(self, request):

print(self.num, request)

def run(self):

self.changelist(999)

class RoleConfig(StarkConfig): #继承 StarkConfig

def changelist(self, request):

print(666, self.num)

class AdminSite(object):

def __init__(self):

self._registry = {} #空字典

def register(self, k, v):

self._registry[k] = v(k)

site = AdminSite()

site.register(UserInfo, StarkConfig)

site.register(Department, RoleConfig)

# site._registry{UserInfo:StarkConfig(UserInfo),Department:RoleConfig(Department)}

for k, row in site._registry.items():

row.run()

# UserInfo,999 666,Department

四、类里面的特殊成员

1、类名() 会自动执行__new__(cls,*args,**kwargs)  创建对象,开辟内存

2、类名()会自动执行__init__(self)  对象初始化

3、对象()会自动执行__call__( )

4、对象[key]会自动执行__getitem__( )

5、对象[k]=value 会自动执行 __setitem__( )

6、del 对象[key] 会自动执行 __delitem__( )

7、对象+对象 会自动执行 __add__( )

8、with 对象 as 变量 会自动执行 __enter__( )和__exit__( )

9、干掉hash __hash__ ==None  对象就不可以hash

10、对象可以迭代  __iter__( )

Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系

Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...

python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系

https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...

PHP类和对象之间的关系

类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...

JAVA面向对象-----接口与类、接口之间的关系

接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...

UML图类,接口之间的关系

UML图类之间的关系(来自大话设计模式中的一张图,代表了类,接口之间的各种关系)

Java 中判断类和实例之间的关系

判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 )   2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 ...

关于package,import,和“找不到可以加载的主类”报错之间的关系

正在回顾java基础 目录结构如下: 一 以下代码,进入Example所在的文件夹, javac和java都不会报错 public class Example{ public static void ...

C# 多线程 类构造函数 类方法之间的关系

先定一个类,既有构造函数又有类方法: public class WriteNumber { /// /// 构造函数 /// publ ...

java 类与类之间的关系 及uml图

类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...

2.java面向对象类与类/类与对象之间关系详解

继承.实现.依赖.关联.聚合.组合的联系与区别 下面的内容很基础,同时也很简单,但是也很重要. 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功 ...

随机推荐

cannot get gid for group ‘nobody’

启动php-fpm /data1/server/php-cgi/sbin/php-fpm 错误[28-Mar-2012 11:15:01] ERROR: failed to open configur ...

通过yocto给p1010rdb定制linux,并启动linux

一.通过yocto定制linux 1.安装yocto yocto只能在非root用户下编译,所以先新建一个用户. useradd chen  passwd -d chen 重启电脑进入chen用户. ...

LVS Nginx HAProxy 优缺点

搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按需求取舍. 目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LV ...

Java 用Freemarker完美导出word文档(带图片)

Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

NOIP2017普及组初赛解析

首发于订阅号 嗨编程,这是一个以嗨为目标的编程订阅号(仅仅是目标而已),扫码可关注,不定期更.

linux下查看系统属性

inux下查看系统属性1.查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu类型: grep "model name" /proc/cpuinfo2.查 ...

最大似然估计(Maximum likelihood estimation)(通过例子理解)

似然与概率 https://blog.csdn.net/u014182497/article/details/82252456 在统计学中,似然函数(likelihood function,通常简写为 ...

MySQL 5.7的原生JSON数据类型使用

新增测试用表: CREATE TABLE lnmp ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `category` JSON, `tags` JSON, P ...

oracleHelper 操作帮助类

using System; using System.Configuration; using System.Data; using System.Collections; using Oracle. ...

cocos2d-x中使用CCOrbitCamera做水平翻转

项目中需要用到水平翻转效果,这里偷懒了-   首先翻转,它只是转到了180度,多了就觉得很奇怪了. 所以这里设定就是先从0 ~ 90度,然后再从270 ~ 360,90 – 270 视觉上是感觉不到变 ...

python类与类的关系_python 类与类之间的关系相关推荐

  1. mysql表和表的关系_mysql表与表之间建关系

    2.浪费硬盘空间 3.扩展性极差 上述的弊端产生原因类似于把代码全部写在一个py文件中,应该怎么做?  >> 解耦合! 将上述两张表拆成员工的部门两张表 分析表数据之间的关系:多个员工对应 ...

  2. python中什么叫类、什么叫对象_python中的类面向对象的基本概念!

    一.概述 今天我们讲述Python中的类&面向对象的基本概念. 首先我们为什么要学习面向对象,我讲一个故事,应该就可以明白了.在古时候,官府衙门如果要颁布什么告示就会去找工匠将命令中的字都雕刻 ...

  3. python中关于命名的例子_Python()-类命名空间和对象/实例命名空间

    类命名空间和对象/实例命名空间: 创建类, 就会创建一个类的名称空间, 空间:存储类的属性 属性: 静态属性:直接定义在类下面 & 和类名关联 的变量 对象属性:在类内和self关联 & ...

  4. python 卡方分布值_python数据分析探索变量之间的关系

    探索变量之间的关系 引言 深入探索分析数据价值有几个重要步骤:①变量的分布检验,②探索变量间的关系,③建立关系模型,④评估,⑤总结结论与建议.接下来看看数据分析的重要一环–「探索变量间的关系」. 1 ...

  5. java c 关系_C语言和java之间的关系

    近些年来,移动互联网在全世界范围内的迅速发展,使得计算机行业也迅速发展,那c语言和java语言作为计算机语言中两种,相应的逐渐被人们了解和关注,想学习和从事c语言和java的朋友也越来越多.那同样都是 ...

  6. 二元函数连续与偏导数存在的关系_怎样理解多元函数,连续与偏导存在的关系,偏导连续之间的关系...

    展开全部 多元函数连续不是偏导存在的充分条件也不是必要条件.62616964757a686964616fe78988e69d8331333366306464 而偏导连续则是更强的条件,即偏导存在且连续 ...

  7. mysql表一对多关系,mysql表与表之间的关系(多对多,一对多)

    #创建数据库 CREATE DATABASE day15; #使用 USE day15; #创建表 CREATE TABLE test1( id INT PRIMARY KEY AUTO_INCREM ...

  8. python中类和对象的内容_python中的类和对象

    摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...

  9. python创建类的两个对象_Python为一个类创建多个对象

    分步教程 要读取文件内容,请使用io.open.如果任何名称有强调字符,请不要忘记指定文件编码.在with io.open('students.txt', mode="r", en ...

  10. python中什么叫类、什么叫对象_Python中的类和对象是什么

    一.面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码. 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程. 二.类和对象 1.类的概念 面向对象编 ...

最新文章

  1. Boring data structure problem 模拟-双端队列
  2. K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)
  3. Vue中使用input简易的上传图片
  4. ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
  5. java用户注册代码解析_java springmvc 注册中央调度器代码解析
  6. ifconfig相关
  7. 用python偷偷给班级群女同学的颜值进行排名,排最后的大姐说开学要打爆我
  8. 流应用– 移动互联网营销新利器
  9. 西门子 HTML控件 上不了网,Win10系统在西门子PLC调试中以太网连接异常处理办法...
  10. php里macd预测算法,股票MACD指标算法公式
  11. PDF文件拆分为图片
  12. lpc1768ADC使用
  13. 一键清理电脑垃圾文件
  14. STM32学习记录0002-STM32初探
  15. Python Twisted系列教程7:小插曲,Deferred
  16. 学校计算机功能室布置,新乡学校计算机功能室建设,景观雕塑设计
  17. A段架構師的關鍵思考技術:戰術引導戰略
  18. 首个比较研究表明维持期强柱患者减量续用TNFi疗效尚佳且药费省
  19. 小米5C解BL锁教程申请BootLoader解锁教程
  20. SAP MM部分常用增强-ME21N-MIGO-MB1A

热门文章

  1. OnlyOffice添加中文字体和修改字号——靠谱
  2. OpenGL 纹理映射
  3. EOJ 2849 成绩排序 C++
  4. BZOJ 3529: [Sdoi2014]数表 莫比乌斯
  5. Ubuntu下git版本升级
  6. 不选考408了!而且计算机不考数学!双非武汉纺织大学招生目录变化
  7. STM32系统学习——EXTI(外部中断)
  8. 电脑网速很快但网页打开很慢
  9. sqlite源码剖析(一)
  10. 国有企业数字化转型按下加速键,数据中台如何有效发力?| 数澜科技