类关系/self/特殊成员
1.依赖关系
在方法中引入另一个类的对象
2.关联关系、聚合关系、组合关系
#废话少说 直接上代码===>选课系统
# coding:utf-8 class Student(object):
def __init__(self, sid, name, addr):
self.sid = sid
self.name = name
self.addr = addr
self.course = [] def get_info(self):
for el in self.course:
print(el.cid, el.title, el.teacher.tid,\
el.teacher.name,el.teacher.phone) def add_course(self, course):
self.course.append(course) class Course(object):
def __init__(self, cid, title):
self.cid = cid
self.title = title
self.course_list = []
self.teacher = '' def get_info(self, course):
pass def setting_teacher(self, teacher):
self.teacher = teacher class Teacher(object):
def __init__(self, tid, name, phone):
self.tid = tid
self.name = name
self.phone = phone t1 = Teacher(11, "张三", 1815786)
t2 = Teacher(22, "李四", 10086) c1 = Course(1, "python1")
c1.setting_teacher(t1)
c2 = Course(2, "python2")
c2.setting_teacher(t2)
c3 = Course(3, "python3")
c3.setting_teacher(t1)
s1 = Student(111, "alex", "北京")
s1.add_course(c1)
s1.add_course(c2)
s1.add_course(c3)
s1.get_info()
3.继承关系,实现关系
#可哈希:内部是否有哈希算法
__hash__
默认的类和对象都是可哈希的
self就是你访问方法的那个对象. 先找自己, 然后在找父类的.
废话少说 上代码
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) # Base(1) 1 111 1
# Base(2) 2 111 2
# Foo(3) 3 222 3
# 这里面注意换行
lst = [Base(1), Base(2), Foo(3)]
for obj in lst:
obj.func1() # 那笔来吧. 好好算.
4.特殊成员(__init__())
即带双下划线的
1.类名() __init__构造方法
2.对象() __call__() python 特有的
类关系/self/特殊成员的更多相关文章
- 【建模】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 在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...
- 【c++】类中的const成员
const成员变量 举个例子 #include <iostream> using namespace std; class A { public: A(int size) : SIZE(s ...
- [C++]类的空指针调用成员函数后,会发生什么事?
类的实例调用成员函数的原理 其实不管是通过对象实例或指针实例调用,其实底层调用的过程都是一样的,都是把当前对象的指针作为一个参数传递给被调用的成员函数.通过下面的相关实例代码进行检验: 实验的C++代 ...
- 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型
我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...
- 类模板的static成员
下列代码可以通过编译吗?如何修改使其通过编译? template <class T> struct sum { static void foo(T op1 , T op2){ c ...
- 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static
在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...
随机推荐
- Firemonkey Android IOS 图标
图标很多
- hadoop 常用端口 及模块介绍
50070 namenode http port 50075 datanode http port 50090 ...
- 2.2.3 Analyzing the output 分析对用户推荐书目的结果(2)
2.2.3 Analyzing the output 在之前的程序运行结果中我们得到的结果输出是: RecommendedItem [item:104, value:4.257081] 程序要 ...
- eclipse 报错:GC overhead limit exceeded
还是eclipse内存问题 修改eclipse.ini -Xms512m -Xmx1024m 必要的情况下, 添加 -XX:MaxPermSize=1024M 表示在编译文件时一直占有最大内存
- SQL基础E-R图基础
ER图分为实体.属性.关系三个核心部分.实体是长方形体现,而属性则是椭圆形,关系为菱形. ER图的实体(entity)即数据模型中的数据对象,例如人.学生.音乐都可以作为一个数据对象,用长方体来表示, ...
- Codeforces #504(div1+div2) 1023D Array Restoration(线段树)
题目大意:给你一个数组,数组是经过q次区间覆盖后的结果,第i次覆盖是把区间内的值赋值为i,其中有若干个地方数值未知(就是0),让你判断这个数组是否可以经过覆盖后得到的,如果可以,输出任意一种可行数组. ...
- ROS与Matlab系列:一个简单的运动控制
ROS与Matlab系列:一个简单的运动控制 转自:http://blog.exbot.net/archives/2594 Matlab拥有强大的数据处理.可视化绘图能力以及众多成熟的算法函数,非常适 ...
- UIScrollView现实自动循环滚动
#import "RootViewController.h" #define width [UIScreen mainScreen].bounds.size.width #defi ...
- ROS Learning-018 Arduino-For-ROS-003 (总结篇) 模板程序 即 如何运行
Arduino For ROS-003 - (总结篇) 模板程序 即 如何运行 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 Arduino的版本:Arduino 1.6.11 ...
- can基础知识介绍
1.什么是can 2.can的特点 2.物理层特征 我们使用ISO11898标准,物理层特征如图所示 3.帧的种类介绍 实际上有一些帧是有硬件来实现的. 4.数据帧介绍 5.总线仲裁 6.位时序(用于 ...