python 面向对象类与类之间的关系
主要内容:
引子
1. 依赖关系 关于大象进冰箱的问题: class Elephant: def __init__(self,name): self.name = name def open(self,ref): print("冰箱,开门吧") ref.open_door() def close(self,ref): print("冰箱关门吧") ref.close_door() def enter(self): print("进冰箱装自己") <div class="cnblogs_code_toolbar">? 就是大象和冰箱之间的关系是一种依赖关系,大象可以选择任何一个冰箱(我们可以通过类来创造出很多个 冰箱),甚至作为大象我可以选择冰箱甚至可以进高压锅,可以说此时的大象有选择的权利. 2. 关联关系,聚合关系 class Boy: def __init__(self,name,character,girlfriend=None): self.name = name self.character = character self.girlfriend = girlfriend def xiangqin(self,girl): self.girlfriend = girl def eat(self): if self.girlfriend: print("吃东西好难,吃啥都不对") else: print("单身狗,狗粮够吗") class Girl: def __init__(self,boyfriend): self.name = name self.boyfriend =boyfriend def eat(self): print ("%s在吃饭" % self.name) <div class="cnblogs_code_toolbar">? 这是典型的一对一的关联关系,两个类的对象紧密练习着,其实就是我需要你,你也属于我这就是关联关系 class School: def __init__(self,address,phone): self.name = name self.address = address self.phone = phone self.__teach_list = [] def zhaopin(self,t): self.__teach_list.append(t) def display(self): for el in self.__teach_list: print(el.name,el.hobby) <div class="cnblogs_code_toolbar">? 老师必然属于?个学校. 换句话说,每个老师肯定有?个指定的工作机构. 就是学校,那老师的属性中必然关联着学校(一对多的情况) 3. 继承关系 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.func1() 总结:
4. 类中的特殊成员 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |