类与类之间的关系
依赖关系是类与类之间关系最轻的一种,创建两个类.一个是主体负责整个事情的掌控,另一个类进行服从.
举例:
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__方法,那么在打印 对象 时,默认输出该方法的返回值