类与类之间的关系

类与类之间的关系

依赖关系是类与类之间关系最轻的一种,创建两个类.一个是主体负责整个事情的掌控,另一个类进行服从.

举例:

class Elphant:
  def __init__(self, name):
    self.name = name
  def open(self, ref):
    print("大象要开门了. 默念三声. 开!")

    ref.open_door()

  def take(self):

    print("钻进去")

  def colse(self,ref):

    print("关门")

    ref.colse_door()

class Refrigerator:

  def open_door(self):

    print("冰箱门被打开了")

  def colse_door(self):

    print("冰箱门被关闭了")

el  = Elphant("小飞象")

r = Refrigerator()

el.open(r)  #将会调用class Refrigerator 执行"冰箱门被打开了"

el.take()

el.colse(r)

类与类之间还存在:

1.关联关系:两种事物之间都有固有的联系,但是从某些特殊角度来看,这两种角度是可以进行更改和更换.

2.聚合关系:属于关联关系中的一种特例,侧重点是xxx和XXX聚合成xxx,各有各的生命周期,比如电脑,有cpu,有硬盘

电脑换了,CPU还是好的,还是一个完整的个体.

3.组合关系:属于关联关系中的一种特例,组合关系比聚合还要紧密,只要一个一个类坏了,其他的都坏了

关联关系进行举例:

# class boy:
# def __init__(self,name,girl = None): #只要把其中的一个变量设为空,然后用另一个类中的变量给与赋值,两个类之间的关系就关联起来了
# self.name = name
# self.girl = girl
# def wan(self):
# if self.girl:
# self.girl.happy()
# print("%s和%s玩的很开心" %(self.name,self.girl.name1))
# else:
# print("自己玩去")
#
# class girl1:
# def __init__(self,name1):
# self.name1 = name1
#
# def happy(self):
# print("猪八戒胖胖的比较好玩")
# b = boy("猪八戒")
#
# g = girl1("高小姐")
# b.girl = g
# # b.wan()
# # b.girl = None
# b.wan()

继承关系:

在面向对象的世界中存在着继承关系. 我们现实中也存在着这样的关系. 我们说过. x是一
种y, 那x就可以继承y. 这时理解层面上的. 如果上升到代码层面. 我们可以这样认为. 子类在不
影响父类的程序运行的基础上对父类进行的扩充和扩展. 我们可以把父类被称为超类或
者基类. 子类被称为派生类.

类的特殊成员

1. 类名() 会自动执行__init__()   是一种构建方法
2. 对象() 会自动执行__call__()
3. 对象[key] 会自动执行__getitem__()
4. 对象[key] = value 会自动执行__setitem__()
5. del 对象[key] 会自动执行 __delitem__()
6. 对象+对象 会自动执行 __add__()
7. with 对象 as 变量 会自动执行 __enter__ 和__exit__

8.打印对象的时候会自动执行,__str__

9.干掉可和哈希 __hash__==None

10.输出类的描述信息__doc__

11.__module__:表示当前操作的对象在那个模块

12__class__表示当前操作的对象的类是什么

13.__del__:析构方法,当对象在内存中被释放时,自动触发执行

14.__dict__:查看类或对象中的所有成员

15.__str__:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值

原文地址:https://www.cnblogs.com/lowen107/p/9931389.html