18_python_类关系
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 jin(self):
print("进冰箱装自己")
class Refrigerator:
def open_door(self):
print("冰箱陌陌的打开了自己的门")
def close_door(self):
print("冰箱陌陌的关上了自己的门 ")
# class GaoYaGuo:
# def open_door(self):
# print("冰箱陌陌的打开了自己的门")
# def close_door(self):
# print("冰箱陌陌的关上了自己的门 ")
alex = Elephant("李杰")
bx1 = Refrigerator()
#
alex.open(bx1)
alex.jin()
alex.close(bx1)
object
2、关联关系
# class Boy:
# def __init__(self, name, xingge, girlFriend=None):
# self.name = name
# self.xingge = xingge
# self.girlFriend = girlFriend
#
# def yujian(self, girl):
# self.girlFriend = girl
#
# def chi(self):
# if self.girlFriend:
# print("随便池! %s 和 %s" % (self.name, self.girlFriend.name))
# else:
# print("单身狗, 池什么池?")
#
# class Girl:
# def __init__(self, name, boyFriend):
# self.name = name
# self.boyFriend = boyFriend
# def chi(self):
# print("%s在吃饭" % self.name)
#
# girl = Girl("白骨精")
#
# alex = Boy("金王", "娘")
# alex.chi()
#
# alex.yujian(girl)
# alex.chi()
#
# # 找到alex的女朋友
# # alex.girlFriend.name
# alex.girlFriend.chi() # 一个对多个. class School:
def __init__(self, name, 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) class Teacher:
def __init__(self, name, gender, salary, hobby, school):
self.name = name
self.gender = gender
self.salary = salary
self.hobby = hobby self.school = school oldboy_bj = School("北京老男孩", "美丽富饶的沙河", "")
oldboy_sh = School("北京老男孩, 上海分校", "上海浦东", "")
oldboy_sz = School("北京老男孩, 深圳分校(骑士计划)", "南山区", "") t1 = Teacher("配齐", "男", 200000, "上课", oldboy_bj)
t2 = Teacher("太白", "男", 150000, "开车", oldboy_bj)
t3 = Teacher("Eggon", "男", 123456, "钻研技术", oldboy_sh)
t4 = Teacher("高鑫", "女", 45678, "相夫教子", oldboy_sz)
t5 = Teacher("日天", "男", 666, "看天", oldboy_sz) # print(t3.school.address) # 找到老师所在的学校的地址 oldboy_bj.zhaopin(t1)
oldboy_bj.zhaopin(t2)
oldboy_bj.display() oldboy_sh.zhaopin(t3) oldboy_sz.zhaopin(t4)
oldboy_sz.zhaopin(t5) oldboy_sz.display()
3、类名与对象是否可作为key
# 可哈希. 内部是否哈希算法 __hash__ # class Foo(object): # 所有的类都会默认继承object
# def __init__(self):
# pass
# def func(self):
# pass
# __hash__ = None
#
# dic = {}
# dic[Foo] = "123456" # 类名是可哈希的。
# dic[Foo()] = "刘伟" # 类中是否包含__hash__
# print(dic) # 默认的类和对象都是可哈希的 # class Base:
# def __init__(self, num):
# self.num = num
#
# def func1(self):
# print(self.num)
#
# class Foo(Base):
# pass
#
# obj = Foo(123)
# obj.func1() # 123 # class Base:
# def __init__(self, num):
# self.num = num
# def func1(self):
# print(self.num)
#
# class Foo(Base):
# def func1(self):
# print("Foo. func1", self.num)
#
# obj = Foo(123)
# obj.func1() # ???? Foo. func1 123 #
# class Base:
# def __init__(self, num):
# self.num = num
# def func1(self):
# print(self.num)
# self.func2()
# def func2(self):
# print("Base.func2")
#
# class Foo(Base):
# def func2(self):
# print("Foo.func2")
#
# obj = Foo(123)
# obj.func1() # 123 # 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() # 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() #
# 111 1
#
# 111 2
#
# 222 3 # 总结: self当前访问xx方法的那个对象
18_python_类关系的更多相关文章
- 【建模】UML类关系分析
一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...
- 设计模式基础:类及类关系的UML表示
设计模式基础:类及类关系的UML表示 2009-10-26 17:00 by 宗哥, 1891 阅读, 1 评论, 收藏, 编辑 UML中,类关系分为这几种,泛化(generalization), 实 ...
- 面向对象的类关系及其C++实现
在面向对象的程序设计中,类之间有6中关系,分别是继承, 组合, 聚合,关联, 依赖,实现,如果使用C语言实现,上面的这些关系通过"结构体包含结构体.结构体包含结构体指针以及函数指针等语法实现 ...
- UML类关系(依赖,关联,聚合,组合,泛化,实现)
转自https://blog.csdn.net/k346k346/article/details/59582926 在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...
- [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射
此特性需要安装Kogel.Dapper.Mssql或者Oracle 3.06及以上版本,实体类层需要安装Kogel.Dapper.Extension 3.06及以上版本 目录 [LINQ2Dapper ...
- UML 类关系及画法
1 泛化 [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向 ...
- uml类关系
类间的关系:http://www.open-open.com/lib/view/open1328059700311.html 泛化 . 实现 . 关联 . 组合 . 聚合 . 依赖 泛化是继承类,实现 ...
- QML控件类关系图
花了点时间整理了下QML控件之间的关系图和QML控件和C++类的对应关系,基于Qt5.6版本 其他版本可能会有差异 图片像素比较大,另存为后放大图片就可以看清楚了 工程下载地址 QMLClassDia ...
- Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52420803 前言:在上篇中,分析了MediaPl ...
随机推荐
- C# WebService创建、发布、调用的简单例子
Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. Web ...
- canvas 实现赛车小游戏
一:样式 <style> #btn{ width: 60px; height: 30px; line-height: 30px; background: #7EC0EE; border: ...
- 10个相见恨晚的 Java 在线练手项目
10个有意思的Java练手项目: 1.Java 开发简单的计算器 难度为一般,适合具有 Java 基础和 Swing 组件编程知识的用户学习 2.制作一个自己的 Java 编辑器 难度中等,适合 Ja ...
- Codeforces 1110 简要题解
文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 众所周知ldxoildxoildxoi这种菜鸡选手是不会写HHH题的,因此该篇博客只有AAA题至GGG题的题解,实在抱歉. A题 传送门 题 ...
- Educational Codeforces Round 61 F 思维 + 区间dp
https://codeforces.com/contest/1132/problem/F 思维 + 区间dp 题意 给一个长度为n的字符串(<=500),每次选择消去字符,连续相同的字符可以同 ...
- 无法重启oracle数据库监听
一.报错 TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linu ...
- gj13 asyncio并发编程
13.1 事件循环 asyncio 包含各种特定系统实现的模块化事件循环 传输和协议抽象 对TCP.UDP.SSL.子进程.延时调用以及其他的具体支持 模仿futures模块但适用于事件循环使用的Fu ...
- 信息安全技术PGP实验 20155205 20155218
信息安全技术PGP实验 一.实验过程 PGP的安装与设置(Mac版) 访问GPGTools网站,下载GPG Suite for OS X,下载完毕,双击dmg文件,运行安装操作. 创建PGP密钥(一定 ...
- 如何批量下载网站中的超链接(一次性下载网页中所有可能的PDF文件)
最近公司在做工程项目,实现文件批量下载. 网上找了很久,发现网上的代码都有相似的问题,不过最终还是让我找到了一个符合的项目. 工程: 进行项目文件下载功能分析,弄清楚文件批量下载的原理,提供的数据支持 ...
- Java理论学时第六节。课后作业。
package Fuction; class Grandparent { public Grandparent() { System.out.println("GrandParent Cre ...