python 类与类之间的关系. 特殊成员
一.类与类之间的关系
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 类与类之间的关系. 特殊成员的更多相关文章
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
- python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...
- PHP类和对象之间的关系
类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...
- JAVA面向对象-----接口与类、接口之间的关系
接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...
- python --- 18 类与类之间的关系, 特殊成员
类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作 随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...
- day16 类之间的关系 特殊成员
类与类之间的关系1.依赖关系(一个对象当另一个对象的参数) 关系最浅, 特殊成员: 1. 类名() 会自动调用 __init__() class Foo: def__init__(self, nam ...
- UML图类,接口之间的关系
UML图类之间的关系(来自大话设计模式中的一张图,代表了类,接口之间的各种关系)
- Java 中判断类和实例之间的关系
判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 ) 2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 ...
- 关于package,import,和“找不到可以加载的主类”报错之间的关系
正在回顾java基础 目录结构如下: 一 以下代码,进入Example所在的文件夹, javac和java都不会报错 public class Example{ public static void ...
随机推荐
- 【python之路29】python生成器generator与迭代器
一.python生成器 python生成器原理: 只要函数中存在yield,则函数就变为生成器函数 #!usr/bin/env python # -*- coding:utf-8 -*- def xr ...
- Django项目:CRM(客户关系管理系统)--50--41PerfectCRM实现全局账号密码修改
# gbacc_urls.py # ————————38PerfectCRM实现全局账号登录注销———————— from django.conf.urls import url from gbacc ...
- css背景图自适应
在开发时,修改了d2admin的登录页面.使用了背景图片,但是ui给的图过于大(可能是我电脑屏幕小哈)无法完整的显示到页面上,所以修改了代码,可以完整显示背景图. 代码如下:background: u ...
- Python 爬取高清桌面壁纸
今天写了一个脚本用来爬取ZOL桌面壁纸网站的高清图片: 链接:http://desk.zol.com.cn/1920x1080/ 本程序只爬了美女板块的图片,若要下载其他板块,只需修改程序中的&quo ...
- postman发送get和post请求
一.postman发送get请求 在地址栏里输入请求url(用到拼接方式):http://127.0.0.1:8081/getuser?userid=1 选择“GET”方式, 点击“send”得到 ...
- BIRT简介
BIRT(Business Intelligence and Reporting Tools,商业智能和报告工具,曾被安讯公司中国分公司译作百灵)项目是一个开源软件项目,其为富客户端应用和Web应用程 ...
- 怎样判断一个exe可执行程序(dll文件)是32位的还是64位的
看到一个比较简单粗暴的方式,做个记录. 直接用记事本或者notepad++(文本编辑软件都可)打开exe文件(dll文件), 会有很多乱码,接下来只需要在第二段中找到PE两个字母,在其后的不远出会出现 ...
- Ajax--serialize应用表单数据序列化
一.jQuery+Ajax表单数据序列化 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- 机器学习之决策树(ID3)算法与Python实现
机器学习之决策树(ID3)算法与Python实现 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...
- 使用Webpack的代码分离实现Vue懒加载
当一个Vue的项目体积变得十分庞大的时候,使用Webpack的代码分离功能将Vue Components,routes或Vuex的代码进行分离并按需加载,会极大的提高App的首屏加载速度. 在Vue的 ...