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 ...
随机推荐
- Codeforces 467D
题目链接 D. Fedor and Essay time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Ubuntu 16.04 配置 L2tp 客户端
#install lib -dev libsecret--dev libgtk--dev libglib2.-dev xl2tpd strongswan #install network-manage ...
- IO多路复用,协程
https://www.cnblogs.com/wangjun187197/p/9642429.html Python之路--协程/IO多路复用 I/O复用模型 此模型用到select和poll函数, ...
- Linux/UNIX之信号(1)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/walkerkalr/article/details/24462723 信号(1) 信号是软件中断.每 ...
- python基础--基础数据类型
1.输入 python2中的输入: 关键字:input() --> 需要人为的告诉input你输入的是哪种类型的数据(声明数据类型) >>> name = input('pl ...
- FTP权限问题解析,553 Can't open that file: Permission denied
FTP上传文件,提示553 Can't open that file: Permission denied 原因: 目录的所属组,所属用户属于root, 导致FTP无法上传, 修改组和所属用户为www ...
- 推荐一个 Laravel admin 后台管理插件
如何优雅的写代码,我想是每位程序员的心声.自从15年初第一次接触 Laravel 4.2 开始,我就迷上使用 Laravel 框架了.我一直都想找个时间好好写写有关 Laravel 的使用文章,由浅入 ...
- ASP.NET CORE使用MailKit的一个故障点分析
ASP.NET CORE下有需要发邮件的需求,但是原来framework下的 system.net.mail,没有实现smtpclient的功能(当时看是没有,说是准备并入.net core来着),所 ...
- iOS 自定义 URL Scheme 完全指南
http://www.cocoachina.com/industry/20140522/8514.html “” 阅读器 自定义URL Scheme 本文转自Migrant的博客,原文:<T ...
- Microsoft: Get started with Dynamic Data Masking in SQL Server 2016 and Azure SQL
Dynamic Data Masking (DDM) is a new security feature in Microsoft SQL Server 2016 and Azure SQL DB. ...