一.类与类之间的关系

1.依赖关系

在方法的参数位置把另一个类的对象作为参数进行传递

 class Person:

     def play(self, tools):  # 通过参数的传递把另一个类的对象传递进来
tools.run()
print('很开心, 我能玩游戏了') class Computer():
def run(self):
print('电脑开机.可以运行') class Phone():
def run(self):
print('手机开机.可以运行') c = Computer()
phone = Phone() p = Person()
p.play(phone)
p.play(c)

2.关联关系

self.属性 = 对象
self.phone = 苹果

self.phone.play()

多对多关系

(1)一对一关系

 class Boy:

     def __init__(self, name, girlFriend = None):
# 在初始化的时候可以给一个对象属性设置成另一个类的对象
self.girlFriend =girlFriend def chi(self):
if self.girlFriend:
print(f'带着他的女朋友{self.girlFriend.name}去吃饭')
else:
print('单身狗,吃什么吃?去学习') def movie(self):
if self.girlFriend:
print(f'带着他的女朋友{self.girlFriend.name}去看电影')
else:
print('单身狗,吃什么吃?去看电影') class Girl:
def __init__(self,name):
self.name = name b =Boy('宝浪')
g =Girl('孙艺珍')
b.chi() b.girlFriend = g
b.chi()

(2)一对多关系

 class School:

     def __init__(self,name):
self.teach_list = [] # 这里要装多个老师 def zhaopin(self,teach):
self.teach_list.append(teach) def shangke(self):
for i in self.teach_list:
i.work() class Teacher:
def __init__(self,name):
self.name = name def work(self):
print(f'{self.name},在上课') lnh = School('老男孩')
t1 = Teacher('wusir')
t2 = Teacher('太白')
t3 = Teacher('日天')
t4 = Teacher('宝浪') lnh.zhaopin(t1)
lnh.zhaopin(t2)
lnh.zhaopin(t3)
lnh.zhaopin(t4)
lnh.shangke()

3.继承关系

 class Base:  # 父类 => 基类 => 超类
def chi(self):
print('我会吃') # 派生类 = > 子类
class Foo(Base): # 这个类继承了Base类. Foo类是对Base的一个扩展
def he(self):
print('我会喝') f = Foo()
f.chi()
f.he()

二.特殊成员

__init__ 初始化操作
__call__ 对象()
__getitem__ 对象[]
__setitem__ 对象[] = 值
__delitem__ del 对象
__new__ 开辟内存.
__hash__ 可哈希. hash()
__enter__ with 对象:
__exit__ with 对象:结束的时候自动调用
__iter__ iter(对象), for

python 类与类之间的关系. 特殊成员的更多相关文章

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

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

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

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

  3. PHP类和对象之间的关系

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

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

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

  5. python --- 18 类与类之间的关系, 特殊成员

    类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作      随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...

  6. day16 类之间的关系 特殊成员

    类与类之间的关系1.依赖关系(一个对象当另一个对象的参数)  关系最浅, 特殊成员: 1. 类名() 会自动调用 __init__() class Foo: def__init__(self, nam ...

  7. UML图类,接口之间的关系

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

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

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

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

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

随机推荐

  1. 如何在vue项目中使用md5.js及base64.js

    一.在项目根目录下安装 npm install --save js-base64 npm install --save js-md5 二.在项目文件中引入 import md5 from 'js-md ...

  2. TZ_16_Vue父子组件之间的通信

    1.父向子传递props,该如何传递 <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  3. HTTP协议详解(经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  4. 使用 git 及 github

    1.github 开户.创建项目 2.以下是本地操作: #初始本地库 git init#设置git的全局邮箱和用户名git config --global user.email "<e ...

  5. ubuntu 软件的更新及解决软件中心自己无法打开

    sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --reinstall software-center

  6. Java问题解读系列之String相关---String类为什么是final的?

    今天看到一篇名为<Java开发岗位面试题归类汇总>的博客,戳进去看了一下题目,觉得有必要夯实一下基本功了,所以打算边学边以博客的形式归纳总结,每天一道题, 并将该计划称为java问题解读系 ...

  7. day 56

    目录 聚合查询 分组查询 F与Q查询 ORM字段及参数 13个字段操作总结 自定义char字段 ORM中事物的操作 数据库三大范式 聚合查询 aggregate()是QuerySet()的一个终止子句 ...

  8. 解释器模式(Interpreter、Context、Expression)

    (给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子.) 解释器模式的定义是一种按照规定语法进行解析的方案,在现在项目中使用的比较少,其定义如下: Given ...

  9. git diff 笔记

    有一个 lab1 一个lab2 lab2 是比lab1 新的版本 但是Lab1 中有一些写的新代码,想要保留到lab2 中 直接使用patch 会把 lab2 回退到lab1 或lab1 更新到lab ...

  10. Oracle JOB的建立,定时执行任务

    Oracle JOB的建立,定时执行任务 oracle job的相关设置 next date: 2010-12-28 18:05:00 interval: to_date(to_char(sysdat ...